我认为您的困惑可能与命名约定有关。
您是否假设外键列名称必须与主键列名称相同才能匹配它们?这绝对不是真的。在关系型数据库出现之前的一段时间里,一些存储技术确实有这种要求,但它根本不是 SQL 标准的一部分。
尽管如此,有一种命名约定很受许多人欢迎,其中外键名称与主键名称完全匹配。这将启用称为自然联接的功能。
但是,并非所有人都同意这种命名约定是个好主意。它的一些问题是 (a) 如果你有两个从一个表到另一个表的 FK,你必须放弃约定以避免重复的列名,以及 (b) 你最终不得不把表名放在在每一列的前面以避免意外的自然连接,例如 person.name 对 company.name。
您的电子表格清楚地表明,表格中的 FKtest
指向其他三个表格的 PK。例如,表的CREATE TABLE
脚本test
将包括:
...
CONSTRAINT FK_TEST__TESTCATEGORYLIST FOREIGN KEY
IX_TEST__TESTCATEGORY (testCategory)
REFERENCES testCategoryList (categoryId)
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句