数据库字段值不存在的时候应该设置为null还是空?

数据库值不存在的时候应该设置为null还是空?
数据库字段应该用单数还是负数?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2

没有通用的方案,看不同数据类型和应用场景。

数字相关,这种就应该使用 0,否则当你有时候取出来忘了转换直接计算时就可能出现 1+null ,有可能拿到一个 NAN。

时间相关的,应该允许为 null。

字符串相关的又分两种,一种是允许有默认值,一种不允许有默认值。

比如 text 相关的就不允许有默认值,而 varchar 等就允许,但是字符串又可能为空,如果这时候允许 null 就会产生两种空,一种是空字符一种是 null 值,就会产生歧义,所以对于这种场景,就更加建议使用空字符串,在不支持默认值的类型上,SQL 中手动加上空字符串,而不是设置允许 null。

其他如 JSON ,这种虽然看起是字符串,也不允许有默认值,那就应该按照约定允许使用 null。

2年前 评论
tiantian10000 (楼主) 2年前

没有通用的方案,看不同数据类型和应用场景。

数字相关,这种就应该使用 0,否则当你有时候取出来忘了转换直接计算时就可能出现 1+null ,有可能拿到一个 NAN。

时间相关的,应该允许为 null。

字符串相关的又分两种,一种是允许有默认值,一种不允许有默认值。

比如 text 相关的就不允许有默认值,而 varchar 等就允许,但是字符串又可能为空,如果这时候允许 null 就会产生两种空,一种是空字符一种是 null 值,就会产生歧义,所以对于这种场景,就更加建议使用空字符串,在不支持默认值的类型上,SQL 中手动加上空字符串,而不是设置允许 null。

其他如 JSON ,这种虽然看起是字符串,也不允许有默认值,那就应该按照约定允许使用 null。

2年前 评论
tiantian10000 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!