外键是空还是空?

时间:2014-05-28 01:25:58

标签: php mysql sql database null

我的问题:

虽然我的数据库相当复杂,但我只包括carcustomer表。

所以我有customer表格,其中包含相关详情,customer_id表格为primary key

现在,在car表格中,我希望foreign keycustomer_id相关联,因此在car表中我可以看到谁拥有什么。问题是如果car还没有被带来呢?

据我所知,外键必须有customer_id才能添加到表中。

我在这里遗漏了什么或者我偏离了轨道,我读到了关于链接表的一些内容? foreign key可以null吗?


另一件事,我如何设置如下规则:

'一个car只能有一个manufacturer(这是一个与fk相关联的单独表格)?我猜这是用PHP完成的吗?

如果有人想要数据库当前ERD的图片,我有一个。

1 个答案:

答案 0 :(得分:0)

对于第一个问题,请查看此参考:Can a foreign key be NULL and/or duplicate?

因为它,您的问题将被标记为重复。


关于第二个:

出于安全目的({1}}和php可以应该处理关系(尤其是最后一个)。 可以保证您的数据不会被损坏,以防有人忘记"关于这段关系。

它们只是表格的列,其中包含另一个表格的ID。您可以使用"字符串","日期"或者你想到的将1个实体与另一个实体联系起来,但最安全和最快的选择就是使用另一个实体的ID。

为什么?

database 必须 唯一,这可以保证您没有重复项(将其视为您上下文中的通用标识),{{1}必须属于另一个表中的另一个实体。您不能使用不属于另一个表中任何实体的值,也不能删除在其他表中拥有该ID的实体 Primary_keys (在删除" parent"之前,您必须删除所有"孩子"否则他们会"孤儿&#34)

有关这些密钥的更多信息,请参阅上面我发布的link以及您可以找到heregoogling

的所有其他丰富参考资料

当然你可以忽略它而根本不处理它,但这是一个糟糕的做法,它不会被推荐。 foreign_keys

相关问题