请原谅我。我相信这是一个错误的标题。但就这样吧。
让我们放置一个有 3 个对象的实例。 用户、项目和工作。这 3 个对象可能包含多个注释
因此,我制定了一个数据库设计,我尝试过并且它有效,但我知道它的性能效率不高,并且我认为这是不合适的。
正如您在 notes
表中看到的,notes.tag
是标记表的字符串标识符。 用户
、项目
、工作
。 notes.tag_id
是对象所在行的 ID。
下面是注释表及其示例值
+----+-------+--------+-----------------------------+--+
| ID | TAG | TAG_ID | MESSAGE | |
+----+-------+--------+-----------------------------+--+
| 1 | items | 1 | Lorem Ipsum | |
+----+-------+--------+-----------------------------+--+
| 2 | items | 1 | Dolor sit Amet | |
+----+-------+--------+-----------------------------+--+
| 3 | users | 1 | consectetur adipiscing elit | |
+----+-------+--------+-----------------------------+--+
对我来说,这非常有效(而且很懒),但我真的不知道这是否正确。您有什么好的建议吗?
最佳答案
我会创建一个单独的NOTE_USERS、NOTE_ITEM、NOTE_WORK 表。然后,您不需要 tag
字段,并且 tag_id
可以是真正的外键。
在 ER 图中,我会将 NOTE_* 实体设为 NOT 实体的不相交 is-a
。但是,我不会将其“具体化”为数据库中的表。
关于mysql - 正确的数据库设计 : One table to Multiple Objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42896750/