gpt4 book ai didi

mysql - 使用全名作为主键与创建附加字段

转载 作者:行者123 更新时间:2023-11-29 11:51:54 24 4
gpt4 key购买 nike

假设我们有两个表。一种是用于电影。电影表包含电影名称、发行年份以及主演的字段。另一张 table 是给主演的。它包含 Actor 姓名及其出生日期的字段。

出生日期字段取决于姓名字段。使用 Actor 全名作为主键有意义吗?如果性能不是问题怎么办?

最佳答案

通常,使用名称字段(甚至全名字段)作为主键根本没有任何意义。这是因为您想要在现实世界中对数据库进行建模,而在现实世界中,人们的名字并不唯一。

现在,也许20世纪的美国电影 Actor 都有独特的名字。但这是一个意外,而不是现实。

在图书馆学领域,诸如 Actor 姓名之类的列表被称为“受控词汇表”。如果您想了解经过几个世纪的经验得出的做此类事情的方法,那么值得一看。

要在 DBMS 中实现受控词汇表,您可以使用带有(自动增量)id 号的表。您可以将该人的姓名放在第二列中,将出生日期放在另一列中,等等。如果该人有别名(例如“Prince”、“The Artist Previously Known As Prince”和“TAFKAP”),您可以将其您的词汇表中可能包含别名表。这将包含成对的 ID 号。

(请注意,甚至美国的社会保障号码也不是唯一的。社会保障管理局曾经犯过发布社会保障卡图片的错误;很多人使用该卡上显示的号码。)

不用担心性能。即使附加了 ID 号,电影 Actor 的总数(算上群众 Actor 、替身 Actor 和特技 Actor )也完全在小型 DBMS 系统的能力范围之内。

关于mysql - 使用全名作为主键与创建附加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com