gpt4 book ai didi

database-design - 使用短字符串作为枚举而不是 int 的缺点?

转载 作者:行者123 更新时间:2023-12-04 07:06:26 24 4
gpt4 key购买 nike

我的数据库中有许多类似枚举的字段。只是一个整数,它是另一个可能包含显示名称或可能包含一些额外数据的表的 FK。问题是,这个数字毫无意义,而且在代码中使用起来也不是很好。此外,如果您尝试合并来自不同数据库的这些枚举中的一些,或者四处移动数据,或者如果它是一个自动增量,您可能会遇到一些名称/键冲突......

只使用短字符串有什么缺点吗?有点像常数?并将其用作主键?一个 int 通常是 4 个字节,我想我真的不需要超过 10 个字符,所以 varchar(10) 就可以了……我不怀疑磁盘使用量真的是个问题。

最佳答案

我个人的方法是对需要更改代码才能添加或删除的项目使用文本键。如果给定的项目是用户应该能够添加或删除的东西,那么我会坚持使用代理键。这允许您的代码使用更容易阅读的文本值。一个例子可能是“状态”(例如开/关、已获取/待定/已出售)。总会有一些代码根据状态采取不同的行为,因此,该代码需要查找特定的状态值。这些“状态”不是任何人都可以简单地添加或删除甚至重命名的东西。代码依赖于它们。因此,对于这些,我使用字符串 PK。但是,用户应该能够随意添加或删除诸如“类别”之类的内容,在这些情况下,代理键(结合适当的业务键)会更好。

关于database-design - 使用短字符串作为枚举而不是 int 的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5722822/

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