gpt4 book ai didi

mysql - 当名称已经单义时,是否有必要为 Country 表使用整数 ID?

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:40 25 4
gpt4 key购买 nike

既然国名是单义的,将其用作主键是个不错的选择吗?

CREATE TABLE IF NOT EXISTS <code>CookingDB</code>.<code>Country</code> (
<code>CountryName</code> VARCHAR(50) NOT NULL,
PRIMARY KEY (<code>CountryName</code>)
)

我在网上找到的示例使用整数 ID 作为主键。有必要吗?

最佳答案

虽然很常见,但不一定要有整数 ID。将国家/地区名称作为键会产生一个大键,其中(有时)包含空格或特殊字符。这意味着使用它们会比较慢,如果您在 HTML/JavaScript 应用程序中使用它们,您可能需要转义它们。

此外,您可能希望将这些本地化一次,或者更改国家名称是否应该使用他们自己的语言的决定,或者是否有他们的英文名称,或者拉丁文字的注音符号......或者名称本身可能会改变(尽管这对于国家/地区可能不会发生太多),或者您可能有一个拼写错误需要更正,最好不必更新所有引用国家/地区的表格。

所以拥有一个代理键根本不是一个坏主意。如果您真的想要国家/地区的文本 key ,我会选择国家/地区 ISO 代码而不是全名。

相关问题:When not to use surrogate keys

关于mysql - 当名称已经单义时,是否有必要为 Country 表使用整数 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696408/

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