我想知道在MySQL中分割表时理论上是否理论上可以删除ID列。
假设我有一张包含此信息的表格:
+-----------+-----------+ +-----------+---------+ | Name | CountryID | | CountryID | Country | +-----------+-----------+ +-----------+---------+ | Theressa | 1 | | 1 | America | | Chiquita | 1 | +-----------+---------+ | Harlan | 1 | | Vanda | 1 | | Dudley | 1 | | Catherine | 1 | | Tad | 1 | | Darcey | 1 | | Antonette | 1 | | Renetta | 1 | | Arla | 1 | | Emery | 1 | | Alla | 1 | | Antonetta | 1 | +-----------+-----------+
+-----------+---------+ +---------+ | Name | Country | | Country | +-----------+---------+ +---------+ | Theressa | America | | America | | Chiquita | America | +---------+ | Harlan | America | | Vanda | America | | Dudley | America | | Catherine | America | | Tad | America | | Darcey | America | | Antonette | America | | Renetta | America | | Arla | America | | Emery | America | | Alla | America | | Antonetta | America | +-----------+---------+
下表可以占用比上面更少的空间吗?外键是否“理解”Person-table中的“America”链接到一个Country-table,占用的空间比ID-version少,因为它已经引用了另一个表。
我很困惑自己,所以我希望你们中的一些人能理解我的问题。
答案 0 :(得分:0)
想象一下一个智能数据库,用任意指针替换字符串“America”。此解决方案需要具有带有数字ID的列,并且它将是相同的
使用int ID。即使它不是真正的问题,它也会节省空间。它将使索引更快地工作并为您节省很多问题。让我们说有人写“美国”和“美国”。字符串看起来更复杂。各国的不同语言名称不同。这个国家有特殊性吗? “España”vs“西班牙”。
P.S。如果您想要清晰易读的主键,请使用ISO代码。示例“美国”。