【发布时间】:2014-09-08 07:24:53
【问题描述】:
为什么要定义最小和最大基数?它是干什么用的?可读性?它与下面的概念有什么关系?如果我理解正确的话,实体之间的关系只不过是 SQL 连接。
【问题讨论】:
-
0:nvs.1:n很重要 - FK 是否强制?此外,重要的是要知道某个东西是1:n还是m:n关系——第一个可以用简单的FK 列处理,第二个需要数据库中的中间“链接”(或“桥”)表。基数具有重要影响! -
@marc_s 你能更深入地解释一下吗?为什么
0:n与1:n很重要?我知道m:n关系评估为一个中间表,所以这确实以某种方式回答了我的问题:) -
如果有
1:n关系,则表示子表中的FK列是必填——它必须有一个值——始终(该列必须在 SQL“speak”中定义为NOT NULL)。如果它是0:n,FK 列也可以留空(在 SQL 中定义为NULLable),这意味着该子实体与任何父实体之间没有关系 - 该子实体可以独立存在,没有父母 -
@marc_s 我对基数还不是很熟悉。如果我理解正确,您可以根据关系是
1:n、n:1、1:1还是n:m关系来推断关系是可选的还是强制性的?那么1:n关系意味着它是强制性关系吗?我将尝试寻找更多关于这方面的资料,我的教科书让我感到困惑。 -
强制与可选外键之间的链接不会影响 1:n 与 1:1。它影响 0,1:n 与 1:n。子记录需要有父记录还是可以是孤儿记录?出于参考完整性的实际原因,这非常重要。
标签: database-design