mysql - 完整的数据库完整性(多 5 倍的表)与模仿 rdbms 中的 oo 概念

标签 mysql rdbms

所以我有这个 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/

相关文章:

java - 如何使用 JAVA 将给定的分层 XML 文件转换为非规范化关系数据库表

sql - 直接加入或存储

mysql - 在 MySQL 表中将当前日期作为默认值插入

python - Django/MySQL 中的间隙检测

rdbms - 没有属性的关系

sql - 如何在 NOT NULL 约束上添加新列

javascript - 通过 php 将 Annotorius 注释数据从 Image Slider 保存到 mySQL

php - MySQL:如何仅使用一个查询获取表中不存在 ID 的百分比

php - 计算 MySQL 列中的总值并在 PHP 中检索值

c++ - QT MySql 数据库检查登录名和密码以登录