主键MySQL

时间:2013-05-01 15:54:37

标签: mysql primary-key

我已经看到它说我应该拥有SQL数据库中所有表的主键。但是,我创建了一个包含许多表的数据库,这些表仅用于存储属于第一个属性的另一个属性的ID。在这两种情况下,我都需要多次提及每个ID,那么我应该使用哪些主键作为主键?

3 个答案:

答案 0 :(得分:1)

一般情况下,您只需使用列“ID”即可。作为跟踪行号的主键。对于存储的属性,您可以使用名为' stored_attribute_id'的列。

答案 1 :(得分:1)

你的问题很不清楚。主键定义列的组合,对于该表,您定义的列必须是唯一的。如果该条目包含在另一个表格中,您可能需要调查Foreign Keys

答案 2 :(得分:1)

如果我得到你所说的话,可以采取两种方法

主键可以是复合

例如。 CustomerContacts可以包含CustomnerID和ContactID,以及两列的主键

所以你可以

1,1
1,2
2,2
2,3

但您无法将另一个Customer2链接到Contact2

另一种方式是代理,通常是汽车招聘

CustomerContacts
CustomerContactID, CustomerID, ContactID, now you could have
1,2,2
2,2,2

您可能想要也可能不想要。

选择你想要的那个,因为你所看到的是非常真实的,没有一个独特的键,除了诗意地遭遇一系列性能问题之外,你会得到“其他一些用户改变了记录问题”

所以说你有一张名字表,托尼就在里面两次。 你想删除其中一个,DBMS如何识别哪个Tony必须去? 它要么摆脱两者,要么会真的很沮丧,把它的玩具扔出婴儿车。

如果它没有一个唯一的密钥,它的第一个正常形式就失败了,这意味着你可以向所有其他人吻别。