:joy:
这个问题有必要纠结吗?你觉得它不对呢,你就自己实现一下
还有谁告诉你数据库字段不能为空的,出于什么原因考虑?
那一条新的数据插入数据库,deleted_at 不为空,应该填什么(0 or 1 也只是针对于软删除业务不同的解决方案而已,而 Laravel 没有选择这种方案)呢?
为什么字段不能为 NULL
印象中,大多数讲解不能为 NULL 是因为使用 NULL 会占用额外空间,
而使用 NOT NULL 并设置默认值为 EMPTY STRING 可以避免这种情况。
为什么 deleted_at 等时间字段不使用 NOT NULL
你可以修改下试试,不能为 NULL,你给啥默认值?
空字符串不符合格式,'0000-00-00 00:00:00' 也不可以,
就连查询也没比 IS NULL 和 IS NOT NULL 更方便的方式了。
这个
有些字段可以 为 空
有些字段可以为 null
比如手机号 mobile 就必须 为null 并且加 (唯一)索引 同理 邮箱也是
那么 个性签名 这种 就可以不为null 设置为空字符串
因为 deleted_at 是时间类型的 不是 NULL 就必须是一个时间格式
在扩展包 设计者 就是用 是否为null来判断是否被删除
而不是 判断 deleted_at != 0000-00-00 00:00:00
我的deletd_at 是int类型,我觉得如果是int类型的话delete_at 应该用默认0来表示
这个
有些字段可以 为 空
有些字段可以为 null
比如手机号 mobile 就必须 为null 并且加 (唯一)索引 同理 邮箱也是
那么 个性签名 这种 就可以不为null 设置为空字符串
因为 deleted_at 是时间类型的 不是 NULL 就必须是一个时间格式
在扩展包 设计者 就是用 是否为null来判断是否被删除
而不是 判断 deleted_at != 0000-00-00 00:00:00