Yii2 为什么使用状态常量 10 而不是 1?
Yii2 why using status constant 10 instead of 1?
我刚开始使用 Yii 2 Framework 进行开发,并安装了 officially advanced app .
用户 table 的迁移脚本 将“10”定义为列 'status' 的默认 值。
'status' => $this->smallInteger()->notNull()->defaultValue(10),
我只是想知道他们为什么使用这个?
以前用boolean(true/false)分别是0/1(在mssql中存储为smallint或bit)
看看common\modules\User
class的内容。状态有两个常量:
const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
不使用布尔类型,因为它假定使用多个状态(超过两个),不仅限于已删除和活动(在这种情况下,我们可以简单地使用布尔列 is_active
或类似的东西).
0
和 10
用作一种边界值,以在将来添加其他常数。也属于极端状态,其他属于中间状态。
常量的实际值可能会有所不同,更重要的是一旦它被声明并且一些数据已经存在,你不能在没有数据迁移的情况下简单地将它更改为另一个值。
但如果您对这些值不满意,可以将其更改为0
、1
并添加其他的如2
、3
等。
您也可以完全删除它并使列成为布尔值并将其重命名为 is_active
,如我之前所说。
请记住 - 这只是一个模板,您可以根据需要进行更改。
我刚开始使用 Yii 2 Framework 进行开发,并安装了 officially advanced app .
用户 table 的迁移脚本 将“10”定义为列 'status' 的默认 值。
'status' => $this->smallInteger()->notNull()->defaultValue(10),
我只是想知道他们为什么使用这个?
以前用boolean(true/false)分别是0/1(在mssql中存储为smallint或bit)
看看common\modules\User
class的内容。状态有两个常量:
const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
不使用布尔类型,因为它假定使用多个状态(超过两个),不仅限于已删除和活动(在这种情况下,我们可以简单地使用布尔列 is_active
或类似的东西).
0
和 10
用作一种边界值,以在将来添加其他常数。也属于极端状态,其他属于中间状态。
常量的实际值可能会有所不同,更重要的是一旦它被声明并且一些数据已经存在,你不能在没有数据迁移的情况下简单地将它更改为另一个值。
但如果您对这些值不满意,可以将其更改为0
、1
并添加其他的如2
、3
等。
您也可以完全删除它并使列成为布尔值并将其重命名为 is_active
,如我之前所说。
请记住 - 这只是一个模板,您可以根据需要进行更改。