假设在某个随机表中,您有一个名为status的列。它的实际值将是enabled或disabled。
此列的数据类型是 int/bool(1 或零)还是ENUM
与值为enabled
and一起使用更好disabled
?有什么优点或缺点?
假设您有 4 个或 10 个甚至更多,而不仅仅是两个有效状态?随着所需值数量的增加,优势和劣势会向一侧倾斜还是向另一侧倾斜?
假设我有一个带有ENUM('value_one','value_two')
. 我想将其更改为ENUM('First value','Second value')
. 我目前这样做如下:
ALTER TABLE `table` MODIFY `column` ENUM('value_one','value_two','First value','Second value');
UPDATE `table` SET `column`='First Value' WHERE `column`='value_one';
UPDATE `table` SET `column`='Second Value' WHERE `column`='value_two';
ALTER TABLE `table` MODIFY `column` ENUM('First value','Second value');
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方式来做到这一点,例如,用一个做到这一点的方式 单一的 ALTER TABLE
声明?
我正在创建一个新表,我想做得正确。该表将是成员及其相关专业类型和十分位数的列表。
专业类型是 3 个字符的字符串。该字段仅允许 8 个字符串。我应该使用 ENUM 或 CHAR(3) 还是更好的东西?
十分位数可以是 1-10 之间的任何数字,但仅限于这些数字。我应该使用 ENUM 还是无符号 TINYINT 或者更好的东西?
哪些是提高效率的最佳选择?