【发布时间】:2014-11-08 00:28:47
【问题描述】:
我必须设计一个通用实体,该实体能够引用不同的其他实体。
在我的示例中,这将是 Web 应用程序中的 commentary 实体。您可以在users、classifieds、articles、varieties(植物类)等上发表评论。
所以实体会变成这样:
事实上,设计(某种)模式是这样的:
这种模式的优缺点是什么?
我看到的是:
优点
- 如果概念相同(例如注释),它会减少实体的数量;
- 因此您可以轻松操作异构对象;
-
您可以轻松地聚合这些对象(例如,该用户在整个站点中的最后评论,在同一线程中轻松呈现);
缺点
这会让你陷入丑陋的境地(你粗暴地使用它,你的数据库和源代码都很丑陋);
- 数据库中没有控制,因此必须在应用程序代码中完成。
- 对性能有什么影响?
结论
这种模式适合关系型数据库吗?那我们该怎么办呢?
提前谢谢你。
【问题讨论】:
标签: database inheritance database-design schema entity-relationship