msk*_*kel 1 sql join foreign-keys unique primary-key
假设我有两个表,表 A 和表 B,并且表 A 具有以下列:
COLUMNS (id INT PRIMARY KEY, name VARCHAR(200) UNIQUE)
Run Code Online (Sandbox Code Playgroud)
我想在表 B 中创建一列,它使用外键引用表 A 的一行。大多数情况下,当我在表 BI 中查找一行时,还希望检索它引用的表 A 行中的名称字段。查找(但不是插入)的速度是一个问题。
是用A表的主键做外键,然后用JOIN把name字段的值带进来,还是用name字段做外键,这样数据就更好了?在表 B 中查找行时已经存在?
通常名称可以更改。也许有人找到了更好的名字,或者名字中有一个必须更正的错字。而PK永远不应该改变。始终将 ID 用作 FK。这就是查找表的工作方式。
如果您使用标识列作为 PK,则 ID 将自动生成且无法更改。进行无意义的PK通常是个好主意。有意义的列往往是编辑的主题。