我正在研究几个链接表,我开始思考(Danger Will Robinson,Danger)链接表的可能结构是什么,它们的优缺点是什么。
我为链接表提出了一些可能的限制:
传统的 3 列模型
在大多数书中,这是一部经典之作,'nuff 说。
索引 3 列模型
INDEX ('table1fk')
INDEX ('table2fk')
根据我自己的经验,您查询的字段在传统模型中没有索引。我发现索引外键字段确实可以提高性能,正如预期的那样。不是一个重大变化,而是一个很好的优化调整。
复合键 2 列
ADD PRIMARY KEY ('table1fk' , 'table2fk')
有了这个,我使用复合键,以便 table1 中的记录只能链接到 table2 上的记录一次。因为键是复合的,所以我可以添加记录 (1,1)、(1,2)、(2,2) 而不会出现任何重复错误。
复合键 2 列选项有任何潜在问题吗?这可能会导致索引问题吗?性能受到打击?有什么会使这成为可能的选择的资格吗?
最佳答案
拥有单列 pk 可以在灾难恢复情况下提供很大帮助。因此,虽然理论上是正确的,但您只需要 2 个外键。在实践中,当狗屎击中风扇时,您可能需要单列键。我从来没有遇到过因为我有一个单列标识符而被搞砸的情况,但我曾经遇到过因为没有而被搞砸的情况。
关于sql - 链接表是否需要无意义的主键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1843222/