系统中,如果某个类被多层泛化,对应的数据库该如何设计?
是每个类一张表, 还是用一张表与之对应,没有属性与某个字段对应的,就空着?
如有两个类:
class a
{
public int a1;
public int a2;
}
class b: a
{
public b1;
}
在设计数据库时,是该做成:
table1
a1, a2, b1, type
还是该做成:
table1
a1, a2
table2
a1, a2, b1
像这样的案例,有哪些解决方案?
既然你写了
class b : a
{
public b1;
}
那么我认为 b1 应该是对象 a 的一个特例的属性。
如果为了今后扩展对象 a 的其他特例的需要,应该把 b1 单独放到一张表中。
同时,我觉得脱离开对象 a 的业务含义来谈继承,实在是不好做解决方案。