我目前正在使用数据库正常化,并且我发现很多来源在获取1NF的方法上有所不同。正常化从UNF到1NF
例如,这是我的UNF表:
customer
+----+--------+----------------------+
| id | name | phone |
+----+--------+----------------------+
| 1 | achmed | 06-101010, 06-111111 |
+----+--------+----------------------+
| 2 | jozef | 06-232323 |
+----+--------+----------------------+
| 3 | maria | 06-464646, 06-989898 |
+----+--------+----------------------+
一种方法分割所述多值转换成不同的元组,其产生冗余临时:
customer
+----+--------+-----------+
| id | name | phone |
+----+--------+-----------+
| 1 | achmed | 06-101010 |
+----+--------+-----------+
| 1 | achmed | 06-111111 |
+----+--------+-----------+
| 2 | jozef | 06-232323 |
+----+--------+-----------+
| 3 | maria | 06-464646 |
+----+--------+-----------+
| 3 | maria | 06-989898 |
+----+--------+-----------+
另一种方法分割所述多值直接进入新的关系,看起来像这样:
customer
+----+--------+
| id | name |
+----+--------+
| 1 | achmed |
+----+--------+
| 2 | jozef |
+----+--------+
| 3 | maria |
+----+--------+
customer_phone
+----+-----------+
| id | phone |
+----+-----------+
| 1 | 06-101010 |
+----+-----------+
| 1 | 06-111111 |
+----+-----------+
| 2 | 06-232323 |
+----+-----------+
| 3 | 06-464646 |
+----+-----------+
| 3 | 06-989898 |
+----+-----------+
两者都会l在更高的正常形式之后最终变得相似,但是为什么1NF应该是“最佳实践”?
[数据库管理系统规范化]的可能重复(https://stackoverflow.com/questions/40623169/normalization-in-database-management-system) – philipxy
嗨。你的问题到底是什么?你自己说过:没有标准的“1NF”含义。没有标准的“UNF”。无论你的“UNF”是什么意思,都不涉及关系表,因为关系表每列和每行都有一个值,所以你必须告诉我们你或你的课程/参考是否打算将这样的数据结构对应于关系。此外,“1NF”的概念是混淆和模糊的,并且最终是关于良好的设计,但与归一化到更高的NF有不同的冗余。他们希望你在*你的课程中做什么?它的参考文献说什么? – philipxy