使用复合键

时间:2014-08-06 06:09:01

标签: mysql database composite-key

我对复合键的概念不熟悉,我还没有理解复合键在现实场景中的使用。在所有现实场景中我都想到我可以用复合键做同样的事情。

1 个答案:

答案 0 :(得分:1)

这是一个场景,你会发现它很有用,假设你是一个编辑器,并有一个带书籍的数据库。现在你需要一个表来存储每本书中每个页面的编辑评论。

唯一标识符是book_id和pageNumber(标准化,因为我们在单独的表中有书籍信息)。

既然我们几乎可以保证每本书都包含重叠的页码,我们就无法在pageNumber上放置主键,我们当然也无法在book_id上放置主键。 在这种情况下,我们希望保证每本书每页只有一行。

相反,自然标识符是(book_id,pageNumber),这是我们选择的。因为这将是每个页面的唯一标识符。

您可以阅读此MSDN链接:

  

当没有单个字段时,使用复合键   识别表格中的每一行。然后你需要采取更多的领域   一起获取表的主键,然后调用它   复合键。

     

例如,您有一个包含以下字段的customers表:   名字,姓氏,出生日期,地址,性别。要不公正   识别客户,你必须知道他的名字,姓氏,日期   出生和地址 - 这将是一个复合键(两个客户   具有相同的名称和地址可以存在以及两个相同   名字和生日)。