gpt4 book ai didi

mysql - 主键 : a string or number (id)?

转载 作者:行者123 更新时间:2023-11-30 00:17:45 25 4
gpt4 key购买 nike

我知道使用整数(空间量、性能、索引)作为主键与字符串相反的好处。

考虑以下情况...

我有一个名为 ap_habitat 的查找表(栖息地值也是唯一的)

id   habitat
1 Forest 1
2 Forest 2

引用表(动物群)

Especie  habitat
X 1
Y 1

引用的表不是很容易阅读(我知道最终用户不应该关心这一点,但对我来说,直接在动物群表中查看栖息地的名称会很有用)。

要获取动物群及其栖息地名称的列表,我必须进行连接...

select fauna.habitat, fauna.especie, AP_h.habitat from fauna INNER JOIN ap_habitat AS AP_h on AP_h.id=1

我可以创建一个 View ,但如果我必须为每个引用外键的表创建一个 View ......

只是想看看更有经验的人推荐我什么。

最佳答案

数据库和一般的计算机并不是为了让你的生活变得更简单而设计的。它们的设计目的是在比人类眨眼更短的时间内处理比人类大脑所能记住的更多的数据。 ;-)

可读性(尤其是苹果时代之前的想法)根本不是问题。

最重要的是:如果您喜欢奇怪的问题、数据映射阻抗以及花费无尽的夜晚编写使用真实世界名称作为主键的问题的解决方法,这些都是免费的,那么请成为我们的客人。但请不要寻求我们的帮助。我们已经知道您将遇到的所有问题,我们很难克制我们的怨恨。

所以:永远不要使用除 ID(UUID 或长序列)之外的任何内容作为主键。没有(充分的)理由这样做,如果你找到了一个理由,那么你根本看不到全貌。

是的,它使一些事情变得更加困难(例如理解数据的实际含义)。但正如我上面所说,计算机的目的是解决“大量数据”和“太慢”的问题,仅此而已。

创建一个 View 或编写一个小型帮助应用程序,只需单击按钮即可运行最重要的查询。

也就是说,我在一个应用程序中取得了一些成功,该应用程序运行查询,然后显示一个复选框列表,我可以在其中提取与查询返回的数据的外键关系(即每个 FK 一个复选框)。

关于mysql - 主键 : a string or number (id)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521504/

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