Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当名称已为单音时,是否有必要为国家/地区表使用整数ID?_Mysql_Database_Primary Key - Fatal编程技术网

Mysql 当名称已为单音时,是否有必要为国家/地区表使用整数ID?

Mysql 当名称已为单音时,是否有必要为国家/地区表使用整数ID?,mysql,database,primary-key,Mysql,Database,Primary Key,既然国家名称是单音的,那么将其用作主键是否是一个不错的选择 创建不存在的表格CookingDB国家/地区( CountryNameVARCHAR(50)不为空, 主键(CountryName) ) 我在网上找到的示例使用整数ID作为主键。有必要吗?不需要整数ID,尽管它很常见。 将国家名称作为密钥将导致一个大密钥,其中(有时)包含空格或特殊字符。这意味着使用它们的速度较慢,如果在HTML/JavaScript应用程序中使用它们,则可能需要避开它们 此外,您可能希望将这些名称本地化一次,或者更改

既然国家名称是单音的,那么将其用作主键是否是一个不错的选择

创建不存在的表格
CookingDB
国家/地区
(
CountryName
VARCHAR(50)不为空, 主键(
CountryName
) )


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

不需要整数ID,尽管它很常见。 将国家名称作为密钥将导致一个大密钥,其中(有时)包含空格或特殊字符。这意味着使用它们的速度较慢,如果在HTML/JavaScript应用程序中使用它们,则可能需要避开它们

此外,您可能希望将这些名称本地化一次,或者更改国家名称是否应使用自己的语言,或者使用英语名称,或者使用拉丁语拼音符号的决定。。或者名称本身可能会发生变化(尽管这对于国家来说可能不会发生太多),或者您可能有一个您想要更正的输入错误,最好不必更新所有涉及国家的表

因此,拥有代理密钥一点也不坏。如果你真的想要一个国家的文本键,我会选择一个国家的ISO代码而不是全名


相关问题:

没有错!但是,我们通常有一个包含整数的列,或者每个国家的iso与每个国家的记录相关。这在很多方面都有帮助,但这取决于你想要创造什么。我建议使用另一列作为id,这也是主键。这样,您的查询将更加准确,并且您不会浪费时间调试或试图找到一个很容易成为印刷错误的错误。 所以,这取决于你,你是创造者