ENUM真的很邪恶吗(SHOW COLUMNS或SELECT)



最好使用ENUM或单独的表从可能的值中获取列表(例如html select)?

什么是更好的实践?

当我使用SHOW COLUMNS时,必须解析枚举类型;

当我使用单独的表来存储可能的值并使用SELECT*???时???

使用enum时,实际上是在数据库表中对列表进行硬编码。所以,如果你需要添加一些东西,你需要去更改表格。另一方面,当您使用通过foreignn键连接的表时,您可以轻松地从前端应用程序添加关键字(选项),而无需更改您的模式。

当选择不受更改时,我更喜欢使用enum,当我的列表随时间变化时,我喜欢使用具有外键关系的表。选择权在你。

我希望这对你有帮助。

答案是:"这取决于"。

这取决于您是否期望这些值的列表永远不会(或很少)更改,或者频繁更改。

在第一种情况下,创建ENUM是有意义的,因为它将值列表定义为数据模型本身的一部分。它明确地告诉用户允许哪些值。

在后一种情况下,我们处理的是数据,而不是数据模型,因此为这些值创建一个单独的表既明智又实用。

这实际上取决于您计划存储的选项数量。如果只有3个,我建议使用UNUM,否则分隔表更好。如果你打算在未来增加更多的选项,第二表也更好。

如果选项受到限制并修复,请使用带有直接("not active"、"active'"、"pending")的枚举

否则,最好为选项创建子表,并在父表中存储相应的整数id(子表的主键)。

请参阅我的回答:对于数据库状态值,哪种设计更好?

最新更新