我对mysql中的数据类型重新分级有疑问。
我在表中有一列名为状态
将具有以下值0=待定,1=活动,2=拒绝,3=暂停4=批准5=审查
我的问题是什么是最好的数据类型。是否
Char(1)
Tinyint(1)
SmallINT(1)
INT(1)
哪一个最好用。
我一直在研究这个问题,但我没有得到任何正确的答案。
请提供建议。
感谢
如果这是唯一允许的5个值,那么使用tinyint,这是一个1字节的数据类型。这将为您提供0-255(无符号)/-128-+127有符号范围。
不要使用字符来存储数字数据。这是一种文本类型。
或者,您可以使用ENUM字段,这将允许您使用"友好"的名称,而不是普通数字。
我不太喜欢在数据库表中包含代码。添加新状态时会发生什么?
您可以创建一个名为status的查找(子)表。插入状态的所有可能值,然后设置与父表的非标识关系。
如果有一个特殊的顺序(不是字母顺序),状态应该按照下拉控件中的顺序进行排序,请添加一个可以排序的列。