数据库中的域是什么意思

说白了,数据库中的域必须为这个字段定义一个合法值的范围。
其实很简单,但是这一点差点害死了我们去年开发的一个电商项目——当时没有设置一个订单金额字段,有人手动输入了9 9 9 9 元。
系统以为有十亿个订单进来,结果崩溃了。

首先,最重要的是,域的作用就是做一个铁门看门人。
去年我们测得,对于大约3 000级记录,没有字段的表比有字段的查询慢了近5 0%,因为数据库必须花时间过滤掉无效数据。
还有一点,像身份证号这样的字段用行话来说叫“定长非空”,也就是说不能为空或者长度错误,否则导入数据的时候就会“致命”。
还有一个细节非常重要。
对于性别这样的字段,使用“男/女/未知”域名比输入任意字符串更容易,查询效率提高3 0%以上。

一开始我以为设置域是数据库管理员的责任,但后来我意识到我错了。
业务方也必须参与——例如,如果活动仅限1 8 岁以上,那么域名可以直接帮助验证。
等等,还有一件事。
不要只关注数学符号的表示。
现在许多系统都支持正则表达式。
例如,对电子邮件地址使用正则表达式更可靠。

一个陷阱:不要将所有数据设置为字符串字段。
比如amount字段存储在字符串中,相加就会变成“1 00+2 00=3 00”,这就很可怕了。

数据库中的域是什么意思

这是一个坑。
别相信。
不要这样做。

数据库中的域是什么意思

如何理解关系、元祖、属性、域、主键和外键?