【发布时间】:2013-03-26 12:49:33
【问题描述】:
首先,我已经阅读了关于此事的this、this 和this 主题。我认为我理解它,但我仍然不确定我是否以正确的方式做这件事,因为我几乎只能识别关系。我基本上想知道我是否朝着正确的方向前进。
我正在创建一个数据库,用户可以在其中创建个人资料(包括免费和付费版本)并发布新闻项目。其他用户可以回复这些项目,并且反应可以获得评级。这是网站功能的一小部分,但它是让我担心的部分。我写下了以下内容(每一行代表两个表之间的链接):
用户: 一个用户可以定义一次附加信息 [识别,1:1] 一个用户可以有一种性偏好 [识别,1:1] 一个用户可以有一个支付状态 [识别,1:1] 一个用户可以定义五个问题 [Identifying, 1:n] 一个用户可以定义三个附加信息行 [Identifying, 1:n] 一个用户可以定义三个兴趣 [Identifying, 1:n] 消息: 一个用户可以发布多个新闻项目 [Identifying, 1:n] 一条新闻可以接收多个cmets [标识,1:n] 每条评论都有一位作者(用户)[识别,1:1] 每条评论都可以获得一个评分[识别,1:1] 每个评分一次只能由一个用户放置 [识别,1:1] 支付: 一项促销可以适用于所有用户,也可以适用于一个特定用户 [非识别性,1:n]几乎所有上述关系都是确定的,这让我怀疑我是否理解这件事。
除此之外,我还使用了一个表格 (status) 来保存(其中包括)用户的付款状态和另一个表格 (promotions) 来保存可能的促销活动。我不清楚我是否应该将promotions 表链接到status 或user 表。
谁能帮我解答疑惑?
【问题讨论】:
-
虽然每个评论都有一个作者,但每个作者肯定可以制作许多 cmets - 所以评论与作者的关系肯定是 n:1 吗?另外,每个评论肯定可以收到很多评分(每个用户一个),所以评论与评分的关系是 1:n,一个用户可以做出许多评分,所以评分与用户的关系是 n:1?
-
有道理,谢谢!所以据我了解另一部分,非识别关系非常罕见..?
-
不一定 - 请注意,我之前的评论只是关于某些关系的 基数,而不是它们是否是识别/非识别关系。正如比尔卡尔文在这个问题的最高评价/接受的答案中所写:stackoverflow.com/questions/2814469(您在问题中链接),“识别关系的技术定义是孩子的外键是其主键的一部分”。因此,这将取决于您在设计中使用哪些字段作为键。
标签: mysql