繁体   English   中英

正确的数据库设计:一个表到多个对象

[英]Proper Database Design: One table to Multiple Objects

原谅我。 我相信这是一个错误的标题。 但是这里。

让我们举一个实例,我们有3个对象。 用户项目工作 这三个对象可能包含多个注释

因此,我制定了一个数据库设计并尝试了它,但是它可以起作用,但是我知道从性能上来看它是无效的,并且我认为这是不合适的。

在此处输入图片说明

您可以在notes表中看到, notes.tag是带标签的表的字符串标识符。 usersitemswork 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_ *实体设为NOTE实体的不相交is-a 但是,我不会将其“实现”为数据库中的表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM