Mysql 枚举(“活动”、“非活动”)与枚举(0,1)

Mysql 枚举(“活动”、“非活动”)与枚举(0,1),mysql,enums,Mysql,Enums,我想在数据库中存储用户的状态。状态列为枚举“活动”、“非活动”或枚举0,1 我永远不会允许非活动用户使用我的应用程序。无需在此加入或在活动和非活动用户中显示。 简而言之,不需要在任何地方显示用户的状态,只需要使用它们。 我可以将其存储为enum0,1,但我只是想知道,如果我选择使用enum'active','inactive'enum'active','inactive'在mysql中内部映射,是否存在任何优化问题,但我仍然想知道字符串是否能起到任何作用 enum是一个内部映射到integer的

我想在数据库中存储用户的状态。状态列为枚举“活动”、“非活动”或枚举0,1

我永远不会允许非活动用户使用我的应用程序。无需在此加入或在活动和非活动用户中显示。 简而言之,不需要在任何地方显示用户的状态,只需要使用它们。 我可以将其存储为enum0,1,但我只是想知道,如果我选择使用enum'active','inactive'enum'active','inactive'在mysql中内部映射,是否存在任何优化问题,但我仍然想知道字符串是否能起到任何作用

enum是一个内部映射到integer的字符串对象。根据枚举值的数量,它将有1或2个字节。在这里,您只有“活动”或“非活动”。所以,没有空间问题

获取不同枚举成员的列表将是一件痛苦的事情

例如:如果您要在表中维护,您不能仅通过从角色中选择*来动态生成状态下拉列表

更改枚举的成员列表代价高昂

将表枚举'active','inactive'更改为枚举'active','disabled' MySQL需要重建您的表,并检查每个记录,以检查现在无效的值“inactive”,这对数百万条记录来说是不好的

使用enum时,您必须注意,您不能再向角色添加任何属性或相关信息

为什么不使用布尔值呢?