【发布时间】:2015-01-29 09:34:39
【问题描述】:
假设我们有如下三个概念:
概念(属性1,属性2,..)
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 }
缺点:存在数据冗余。
2) 在一张表中建模
A { id, object_type, a, b, c, d, e, f }
缺点:有些字段对于某些概念仍然为空。
3) 使用表之间的关系
A { parent_id, a, b, c, d }
B { id, parent_id, e }
C { id, parent_id, f }
缺点:增加查询复杂性以连接表。
你会使用哪种方法?您还有其他解决方案吗?您认为第三种方法的性能较差吗?
【问题讨论】:
标签: mysql database data-modeling object-oriented-analysis object-oriented-database