精心设计的表的属性
真正的关系数据库必须超越将数据抛入几个表并编写一些 SQL 语句以将数据拉出来。
充其量只是设计糟糕的表结构会减慢查询的执行速度,并使数据库无法按预期运行。
不应将数据库表视为另一个表; 它必须遵循一套规则才能被视为真正的关系。在学术上,它被称为关系以进行区分。
关系表的五个规则是:
- 每个值都是原子的 ; 每行中每个字段的值必须是单个值。
- 每个字段包含具有相同数据类型的值。
- 每个字段标题都有一个唯一的名称。
- 表中的每一行必须至少有一个值,使其在表中的其他记录中唯一。
- 行和列的顺序没有意义。
符合五条规则的表格:
ID |
名称 | DOB | 经理 |
---|---|---|---|
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
2 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
3 |
起诉 | 1975 年 8 月 7 日 | 2 |
- 规则 1:每个值都是原子的。
Id
,Name
,DOB
和Manager
只包含一个值。 - 规则 2:
Id
只包含整数,Name
包含文本(我们可以添加它的四个字符或更少的文本),DOB
包含有效类型的日期,Manager
包含整数(我们可以添加对应于管理器中的主键字段)表)。 - 规则 3:
Id
,Name
,DOB
和Manager
是表中唯一的标题名称。 - 规则 4:包含
Id
字段可确保每条记录与表格中的任何其他记录不同。
设计糟糕的桌子:
ID |
名称 | DOB | 名称 |
---|---|---|---|
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
1 |
弗雷德 | 1971 年 11 月 2 日 | 3 |
3 |
起诉 | 1975 年 7 月 18 日星期五 | 2,1 |
- 规则 1:第二个名称字段包含两个值 - 2 和 1。
- 规则 2:DOB 字段包含日期和文本。
- 规则 3:有两个名为’name’的字段。
- 规则 4:第一和第二条记录完全相同。
- 规则 5:此规则未被破坏。