繁体   English   中英

选择主键和外键

[英]Choosing Primary and Foreign Keys

我对主键和外键的概念有疑问。 我猜 model 将是我的主键? 不太确定如何连接 rest:/

产品(制造商,model,类型)

PC(型号、速度、内存、高清、价格)

笔记本电脑(型号、速度、内存、高清、屏幕、价格)

打印机(型号、颜色、类型、价格)

通常,您希望有一个非常 static 的非重复字段作为您的主键。 通常这最终会成为一个“id”列,其中包含随机生成的非重复 id(例如 UUID)。 重要的是要记住,您的主键是表中任何给定行的标识符,并且不能被同一张表上的任何其他行重复。

外键是列中的值,其来源来自另一个表。 很难用你提供的数据给出一个可靠的例子,因为我不确定表和它们的列是如何相互关联的,但是可以说 Product 表的 model 字段是为了匹配 model电脑桌上的项目。 在这种情况下,Product 上的 model 列将与 PC 表有外键关系,这意味着存储在 Product 表上的 model 列中的项目必须与 PC 表上的条目匹配,因此外键中的“外来”。

一般来说,尽管您会让外键成为对 id 的引用,而不是另一个表上的实际字段。 就像您的产品表可能有一个名为“maker_id”的列,这将与 Maker 表上的 maker_id 有外键关系。 然后在那个 Maker 表上,你存储了几个列,其中包含关于那个制造商的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM