Yii2为什么使用状态常量10而不是1?

Yii2为什么使用状态常量10而不是1?,yii,yii2,yii2-advanced-app,yii-migrations,Yii,Yii2,Yii2 Advanced App,Yii Migrations,我刚刚开始使用yii2框架进行开发,并安装了 用户表的迁移脚本将“10”定义为列“status”的默认值 'status' => $this->smallInteger()->notNull()->defaultValue(10), 我只是想知道他们为什么用这个? 在过去,我分别使用了布尔值(真/假)0/1(在mssql中存储为smallint或bit)。看看common\modules\User类的内容。状态有两个常量: const STATUS_DELETED =

我刚刚开始使用yii2框架进行开发,并安装了

用户表的迁移脚本将“10”定义为列“status”的默认值

'status' => $this->smallInteger()->notNull()->defaultValue(10),
我只是想知道他们为什么用这个?


在过去,我分别使用了布尔值(真/假)0/1(在mssql中存储为smallint或bit)。

看看
common\modules\User
类的内容。状态有两个常量:

const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
不使用布尔类型,因为它假定使用多个状态(两个以上),而不仅限于删除和活动(在这种情况下,我们可以简单地让布尔列
处于活动状态或类似状态)

0
10
用作一种边界值,以便将来在这两者之间添加其他常量。它也是一种极端状态,而其他状态是中间状态

常量的实际值可能会有所不同,更重要的是,一旦声明了常量并且某些数据已经存在,就不能在不迁移数据的情况下将其简单地更改为另一个值

但如果您对这些值不满意,可以将其更改为
0
1
,并添加其他值,如
2
3
,依此类推

您还可以完全删除它,将列设置为布尔值,并将其重命名为
is\u active
,如我前面所说


请记住-这只是一个模板,您可以根据需要对其进行更改。

哪种迁移脚本和位置?更重要的是为什么概念中使用了“10”而不是“1”,然后是关于确切的迁移。但仅供参考的迁移脚本是“console\migrations\m130524_201442_init.php”,感谢您提供了信息丰富的答案。说清楚一点,我并不介意使用这些值,只是想知道为什么会这样使用它们(10而不是1)。如果我想添加第三个值,使用0到10之间的值还是使用20更好(从逻辑上讲,还是使用该模板更好)?