数据库数据约束与文件存储的最佳实践
1. 限制列值为特定值
1.1 背景与目标
在数据库设计中,限制列值为特定值是非常有用的。例如在个人联系信息表中,称呼列(salutation)通常只有少数几个值,如 Mr.、Mrs.、Ms.、Dr. 和 Rev.。在设计数据库时,我们可以通过数据类型或约束来指定这些值,以防止无效数据的输入。
CREATE TABLE PersonalContacts (
-- other columns
salutation VARCHAR(4)
CHECK (salutation IN ('Mr.', 'Mrs.', 'Ms.', 'Dr.', 'Rev.'))
);
在示例数据库的 Bugs 表中,状态列(status)表示一个 bug 的状态,如 NEW、IN PROGRESS、FIXED 等。我们期望数据库能够拒绝无效数据:
INSERT INTO Bugs (status) VALUES ('NEW'); -- OK
INSERT INTO Bugs (status) VALUES ('BANANA'); -- Error!
1.2 反模式:在列定义中指定值
许多人在定义列时会指定有效数据值,常见的方法包括:
- 定义检查约束 :通过检查约束来限制列值。
CREATE T
超级会员免费看
订阅专栏 解锁全文
1427

被折叠的 条评论
为什么被折叠?



