【发布时间】:2019-12-03 04:56:13
【问题描述】:
我正在创建一个 laravel 应用程序,一些表的状态列将只接收两个值:ACTIVE 或 INACTIVE。
我想我有两个选择:
- 布尔型,MySql 上一般设置为
tinyint(1) - varchar,并设置
ACTIVE或INACTIVE字符串值
最大的问题是我应该选择哪种类型:
第一个比较小,存储在数据库上,如果我设置像is_active这样的列名,在代码中很容易使用,但会使数据库更难被人类准备好;
第二个将需要在数据库中保存更多空间并在模型中保存一些类常量以使事情更有条理,但会使数据库更易于人类阅读(以及可以添加到项目中的新开发人员) )。
我应该选择哪个性能和可读性好?
编辑:
我的问题是,如果开发人员需要直接在数据库中编辑某些内容,而不是存储和性能问题,那么开发人员读取/理解数据库的难度/复杂性。
【问题讨论】:
-
还不如使用
enum而不是varchar。 -
enum的问题不是标准的 sql 类型,如果需要,Laravel 很难改变。