Jak*_*son 136 mysql database-design datatypes
假设在某个随机表中,您有一个名为status的列。它的实际值将是enabled或disabled。
此列的数据类型是 int/bool(1 或零)还是ENUM与值为enabledand一起使用更好disabled?有什么优点或缺点?
假设您有 4 个或 10 个甚至更多,而不仅仅是两个有效状态?随着所需值数量的增加,优势和劣势会向一侧倾斜还是向另一侧倾斜?
Rol*_*DBA 83
我发现了一篇关于不应该使用 ENUM 的 8 个原因的非常奇怪但内容丰富的文章。
即使没有文章,我也知道
Der*_*ney 41
好吧,首先我们有存储要求。我假设你的意思是一个 tinyint(而不是 int)。
所以,从表面上看,它们都是一样的。ENUM 确实为与之关联的字符串值占用了一些元数据(旧的 src)
我想说的是,随着您添加更多值,任何优势都开始从ENUM. 特别是如果您在表已被使用后添加值,因为您必须更改表结构以适应。
使用 的优势是ENUM什么?值含义的字符串表示形式。就我而言,就是这样。它的价值取决于您的应用程序。
Bil*_*hor 20
我发现 ENUM 是代码表的简短形式定义。它的主要优点是避免了加入和显示代码描述所需的代码。如果它们以字符串形式到达,它还可以简化设置值。
我发现它有以下缺点: