我的问题:
虽然我的数据库相当复杂,但我只包含了 car
和 customer
表。
所以我有一个包含相关详细信息的customer
表,customer_id
作为主键
。
现在,在 car
表中,我希望有一个 外键
链接到 customer_id
,所以在 car
table 我可以看到谁拥有什么。问题是车
还没有带来怎么办?
据我所知,外键必须有一个 customer_id
才能添加到表中。
我是不是遗漏了什么或者偏离了轨道,我阅读了一些关于链接表的内容?
外键
可以是null
吗?
另一件事,我该如何设置规则,例如:
“一辆汽车
只能有1个制造商
(这是一个单独的表,用fk
链接)”?我猜这是用 php 完成的,对吗?
如果有人想要数据库当前 ERD 的图片,我有一张。
对于第一个问题,请查看此引用资料:Can a foreign key be NULL and/or duplicate?
您的问题将因此被标记为重复。
关于第二个:
出于安全目的(尤其是最后一)。这保证您的数据不会损坏,以防有人“忘记”这种关系。
它们只是表的列,其中包含另一个表的 ID。您可以使用“字符串”、“日期”或任何您想到的将一个实体与另一个实体相关联的方式,但最安全和更快的选择是只使用另一个实体的 ID。
为什么?
Primary_keys
必须 唯一,这保证你没有重复项(将它们视为你上下文中的通用标识),并且 foreign_keys
必须属于另一个表中的另一个实体。您不能使用不属于其他表中任何实体的值,也不能删除在其他表中具有其 ID 的实体 foreign_key
在其他一些实体中(在删除“ parent ”之前,您必须删除所有“ child ”,否则他们将是“孤儿”)
关于这些键的更多信息在 link 中我已经在上面发布了,您可以找到任何其他丰富的引用资料 here和 googling它
当然,您可以忽略它,根本不处理它,但这是一种糟糕的做法,因此不推荐这样做。
如果我发现你这样做,我会追捕你...哈哈