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