mfg*_*cha 3 yii yii2 yii2-advanced-app yii-migrations
我刚刚开始使用Yii 2 Framework进行开发,并安装了官方高级应用程序.
用户表的迁移脚本将"10"定义为列"status" 的默认值.
'status' => $this->smallInteger()->notNull()->defaultValue(10),
Run Code Online (Sandbox Code Playgroud)
我只是想知道为什么他们使用这个?
在过去,我分别使用boolean(true/false)0/1(在mssql中存储为smallint或bit).
aro*_*hev 10
看看common\modules\User上课的内容.状态有两个常量:
const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
Run Code Online (Sandbox Code Playgroud)
不使用布尔类型,因为它假定使用多个状态(超过两个),不仅限于已删除和活动(在这种情况下,我们可以简单地使用布尔列is_active或类似的东西).
该0和10被用作一种边界值,以在将来添加其他常量之间.它也是一种极端状态,而其他是中间状态.
常量的实际值可以变化,更重要的是一旦声明并且某些数据已经存在,您不能简单地将其更改为没有数据迁移的其他值.
但是,如果你不满足于这些值,你可以把它改成0,1并添加其他的2,3等等.
您也可以完全删除它并使列布尔值并将其重命名is_active为我之前说过的.
请记住 - 它只是一个模板,您可以根据自己的需要进行更改.