我想在db中存储用户的状态。状态列为enum('active','inactive')
或enum(0,1)
。
我永远不会允许非活动用户使用我的应用程序。无需在此处进行联接或显示活动和非活动用户。
简而言之,无需在任何地方显示用户的状态,只需使用它们。
我可以将它存储为enum(0,1)
但我只是想知道是否有任何优化问题,如果我选择使用enum('active','inactive')
enum('active','inactive')
在mysql内部映射,但我仍然很想知道是否字符串可以有所作为。
答案 0 :(得分:2)
enum是一个内部映射到整数的字符串对象。它将是1或2个字节,具体取决于枚举值的数量。在这里,你只有活跃的'或者'不活跃'。所以,没有空间问题。
获取列表会很痛苦。
例如:如果您已经在表格中维护,则无法通过从角色中选择*来动态生成状态下拉列表
更改 ENUM的会员列表昂贵
ALTER TABLE ENUM('active','inactive')
到ENUM('active','disabled')
MySQL需要重建您的表并查看每个记录以检查现在无效的值'不活动'并且会对数百万条记录造成不利影响
当您使用枚举时,您必须注意您不能再向角色添加任何属性或相关信息