我正在创建一个新的数据库并陷入两难境地:我有一个作者表。我的要求是它应该包含firstName和lastName列,我不应该允许两个具有相同firstName和lastName的作者。
我的第一个想法是创建firstName和lastName复合pk,那就是它!
但是,我会把这个表绑定到其他表,以便让我的生活更轻松我使用int auto_increment PK并制作firstName和lasteName的复合UC。
我的问题一般是:让我说我有个人桌,我可以使用SSN作为PK。如果我将这个表绑定到n个表,那么复制子表中的SSN值会比使用int auto_increment PK和制作SSN列的UC消耗更多内存吗?
什么方法更好,什么时候使用什么?
亲切的问候,
答案 0 :(得分:0)
最好的方法是将PRIMARY KEY与业务逻辑表的其余部分分开。此外,由于索引,单独使用PK会更快,性能更好,维护更容易,并且可以更快地将表链接到彼此,这也可以确保更快地执行表中的语句。
您最好的选择是选择id
之类的PK列,然后对firstName-lastName设置单独的UNIQUE
约束。