所以我有这个噩梦(RDBMS)。我在这里问了很多问题,但没有一个得到回答,关于在 rdbms 中模仿 oo 概念......
许多网站(论坛、社交网络等)对发布的内容都有很多功能。
他们可以有评论,喜欢,分享,明星等......
假设可以有几种类型的帖子(普通帖子、评论、照片、问题)并且某些类型的帖子不能具有所有功能(比如我们只说星星和评论),很难决定走哪条路...
我可以去 :
在 oo 路上,通过为每个帖子创建一个实体 id 和实体类型(这个实体 id 将在每个帖子表中引用,并且该功能也将引用实体 id)。还需要实体类型来制作一些完整性触发器,例如评论实体可以具有类似功能但不具有评论功能。如果需要为帖子添加更多功能(需要添加一些新的实体类型),此实体类型字段将是一场噩梦。而这对于数据完整性来说简直是一团糟。
或在 5 倍以上的数据库表上。我的意思是为每种类型的帖子表设计功能表。这将需要更多的连接,更长的查询,但至少我知道我不会遇到数据完整性或可伸缩性的问题。
我必须使用 rdbms ,不能采用 oodbms 方式或 graph db 方式。
你会从这两种设计中选择什么?或者你会如何更好地设计它?