所以我有这个 nightmere (RDBMS)。我在这里问了很多问题,但都没有得到回答,关于在 rdbms 中模仿 oo 概念......
许多网站(论坛、社交网络等)都为发布的内容提供了很多功能。
他们可以发表评论、点赞、分享、加注星标等......
假设可以有几种类型的帖子(普通帖子、评论、照片、问题)并且某些类型的帖子不能具有所有功能(比如只能说星号和评论),很难决定是哪一种一路走好……
我可以走了:
在面向对象的道路上,为每个帖子创建一个实体 ID 和实体类型(这个实体 ID 将在每个帖子表中引用,特征也将引用实体 ID)。还需要实体类型来制作一些完整性触发器,例如评论实体可以具有 like feature 但没有 comment feature 。如果需要为帖子添加更多功能(将需要添加一些新的实体类型),这个实体类型字段将是一个噩梦。这对数据完整性来说简直是一团糟。
或 5 倍以上的数据库表。我的意思是为每种类型的帖子表设计功能表。这将需要更多的连接、更长的查询,但至少我知道我不会遇到数据完整性或可伸缩性方面的问题。
我必须使用 rdbms,不能使用 oodbms 方式或 graph db 方式。
您会从这两种设计中选择什么?或者你会如何更好地设计它?
最佳答案
What will you choose from those 2 types of design ? Or how would you design it better ?
在您的应用程序语言中关注 OO。 RDBMS 不适合 OO 概念。相反,使用 NULL 等,而不是尝试发明子类表。
(好吧,也许我的回答是蹩脚的。但它让这个老歌从“未回答”中脱颖而出)
关于mysql - 完整的数据库完整性(多 5 倍的表)与模仿 rdbms 中的 oo 概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622961/