假设我们有三个概念如下:
概念(attribute1,attribute2,..)
A(a,b,c,d)
B(a,b,c,d,e)
C(a,b,c,d,f)
在数据库中为这三个概念建模有三种选择:
1)按原样对它们进行建模
表{column1,column2,...}
A {id,a,b,c,d}
B {id,a,b,c,d,e}
C {id,a,b,c,d,f}
Con:存在数据冗余.
2)在一个表中建模
A {id,object_type,a,b,c,d,e,f}
Con:对于某些概念,某些字段仍为空.
3)使用表之间的关系
一个{parent_id,a,b,c,d}
B {id,parent_id,e}
C {id,parent_id,f}
Con:增加查询复杂性以连接表.
你会用哪种方法?你有其他解决方案吗?你认为第三种方法的性能较差吗?
mysql database data-modeling object-oriented-analysis object-oriented-database