2

所以我有这个噩梦(RDBMS)。我在这里问了很多问题,但没有一个得到回答,关于在 rdbms 中模仿 oo 概念......

许多网站(论坛、社交网络等)对发布的内容都有很多功能。
他们可以有评论,喜欢,分享,明星等......

假设可以有几种类型的帖子(普通帖子、评论、照片、问题)并且某些类型的帖子不能具有所有功能(比如我们只说星星和评论),很难决定走哪条路...

我可以去 :

  • 在 oo 路上,通过为每个帖子创建一个实体 id 和实体类型(这个实体 id 将在每个帖子表中引用,并且该功能也将引用实体 id)。还需要实体类型来制作一些完整性触发器,例如评论实体可以具有类似功能但不具有评论功能。如果需要为帖子添加更多功能(需要添加一些新的实体类型),此实体类型字段将是一场噩梦。而这对于数据完整性来说简直是一团糟。

  • 或在 5 倍以上的数据库表上。我的意思是为每种类型的帖子表设计功能表。这将需要更多的连接,更长的查询,但至少我知道我不会遇到数据完整性或可伸缩性的问题。

我必须使用 rdbms ,不能采用 oodbms 方式或 graph db 方式。

你会从这两种设计中选择什么?或者你会如何更好地设计它?

4

1 回答 1

0

你会从这两种设计中选择什么?或者你会如何更好地设计它?

专注于应用程序语言中的 OO。RDBMS 不适合 OO 概念。相反,使用 NULL 等,而不是尝试发明子类表。

(好吧,也许我的回答很蹩脚。但它让这个老歌脱离了“未回答”)

于 2015-04-26T22:41:00.870 回答