我知道唯一键和主键之间有什么区别,如下面的链接所解释的
http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/ difference between primary key and unique key
但我在面试中被问到了一些不同的问题,
如果我在一个表中有两个列,它可以唯一地识别条目,比如学生名册no和国家id no。然后选择哪一个作为主键,如果在唯一键上添加null约束,主键和唯一键之间的区别是什么。
在这个问题上有什么帮助吗?
提前谢谢。
发布于 2015-03-22 19:08:06
我是第三种方式的拥护者--拥有一个自动递增的整数主键。然后,您可以将唯一的索引放在其他索引上。
这样的钥匙提供了很多东西。首先,它允许您确定插入记录的顺序--至少接近接近。第二,它使外键引用更容易。我通常将这些列命名为<tablename>Id,这使得外部引用变得显而易见。
第三,整数是一种非常有效的索引机制(固定宽度值,通常是四个字节)。诚然,它们确实在原始表中产生了一些开销,但这通常是次要的。
第四,列可能不适用。在美国,最接近国民身份证号码的是一个社会保险号码--它不一定是唯一的。此外,也可能有一些学生没有这样的人数--例如,外国学生。
https://stackoverflow.com/questions/29198513
复制相似问题