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\Userclass的内容。状态有两个常量:

const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;

不使用布尔类型,因为它假定使用多个状态(超过两个),不仅限于已删除和活动(在这种情况下,我们可以简单地使用布尔列 is_active 或类似的东西).

010 用作一种边界值,以在将来添加其他常数。也属于极端状态,其他属于中间状态。

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

但如果您对这些值不满意,可以将其更改为01并添加其他的如23等。

您也可以完全删除它并使列成为布尔值并将其重命名为 is_active,如我之前所说。

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