我打个比如来说,大家帮忙看看我的想法哪里错了
比如要建立一个论坛,论坛有很多种板块,比如像javaeye的有java板块,ajax板块。
每个板块都一些设置,不同的板块可能有些不同的设置或显示选项。
如果用建关系表,那我可以用一个forum_type的表来存储板块类型,然后用一个forum_type_property来对应不同板块的属性设置。
但如果用对象来建类,那是不是像这样:
public class Forum{
}
JavaForum:
public class JavaForum extends Forum{
}
AjaxForm:
public class AjaxForm extends Forum{
}
但如果这样的话,那我要增加一个种类的板块,岂不是要新建一个类?而不是像关系表那样,新增一个板块就添加相应的数据就可以了……
我知道我的理解是有问题的,请问我的想法错在哪里?
问题补充:
没明白,可能我举的例子有问题
再说一个,比如我有一个动态添加动物的功能,关系数据表是这样的。
一个动物表:
t_animal:
id name
1 老虎
2 乌鸦
然后一张动物的器官表:
t_animal_part:
id animal_id part_name
1 1 头
2 1 四肢
3 1 尾巴
4 2 头
5 2 双脚
6 2 尾巴
7 2 翅膀
乌鸦比老虎多了翅膀的部分。
如果我要添加一种动物,比如蛇,那么只要在t_animal表添加一条“蛇”的数据,
然后在t_animal_part表添加相应的不分即可。不用改任何代码。
但如果按照每一种动物一个类的话,比如:
public Tiger extends Animal{
}
那势必是每添加一种动物就要加一个类吧?
比如添加蛇就要添加一个这样的类:
public snake extends Animal{
}
或者说,用类继承都是静态,固定了的,不可在运行时再添加或者删除。
那如果我现在要做一个可以在运行时添加删除动物的功能,是不是就不能用这种面向对象的想法了?
问题补充:
-----------------------------补充分割线--------------------------------
你说的我应该明白。
但不知道你有没有看我的问题补充,那个动物的例子。
我说的就是每个动物都是不同的。比如老虎有四条腿没有翅膀,而乌鸦两条腿有翅膀。
如果按上文说的数据表来建模,那么我添加一种动物只需要保存相应的数据即可。但如果建模成那种继承的类模型,就不是添加数据就可以解决问题了。因为要添加相应的类。
其实我的意思大概应该也相当于你说的那个SpeForum。
按你的说法,那只能是添加相应的类了。