【发布时间】:2017-06-01 16:04:29
【问题描述】:
我正在开发一个即时消息 Web 应用程序,我决定使用 MySQL 来存储我的模型。但是当我遇到 ORM 持久化时,我有点困惑。
假设我有两个模型,用户和消息。消息有两个与用户相关的属性,发送者和接收者。一个用户可以发送多条消息,而一条消息只能有一个发送者和一个接收者。
我的问题:
- 根据this,一对多的意思
表 A 中的一行可能与表 B 中的许多行链接,但表 B 中的一行仅链接到表 A 中的一行
在我的情况下,用户到消息是一对多的关系吗?我的意思是,一个消息行链接到用户表中的两行。
- 如果这不是一对多关系,那么在用户和消息之间什么实际关系最合适?
【问题讨论】:
-
“链接”是从表中的列列表到表中的列列表。不在桌子之间。
-
@philipxy 所以这完全是一对多的关系。发送方列仅对应行,接收方列也是如此。我说得对吗?
-
我无法理解您的评论。看我的回答。您需要根据表表示的关系或 FK 来讨论。 PS关系不是关系。一张表(关系)代表一种“关系”(意为关联)。链接是“关系”(意思是 FK)。
-
@philipxy 对不起我的英语不好。您在回答中解释的内容有点深奥,但有很大帮助。谢谢!
-
如果您认为我的回答有助于使其更有帮助,请发表评论。重新“深奥”我希望你会考虑相反它是如何具体和实用的。 (每个段落都有一个精确的例子。)是的,作为关联的“关系”是抽象的,但它是 ER 和关系模型所基于的基本和实用概念。请注意您自己的链接使用具有三种不同含义的“关系”——关联(“关系本身”)、基数和 FK(“链接”),同时声称只给它两个 i> 含义(ER 与数据库)和 混淆 所有三个。 PS编辑了我的答案。
标签: database-design relational-database one-to-many one-to-one