【发布时间】:2013-12-15 03:09:36
【问题描述】:
我有一个关于 1 范式的问题,将通过一个例子来解释它。
假设我们有一组学生正在从事一组项目,但不一定只有一个,而是不止一个(多对多关系)。我们有一张记录学生信息的表格,还有一张用于项目的表格。但我们需要将它们联系在一起。但是由于 1NF 表示冗余并且每个元组只有值,你会怎么做呢? 这两个字段都是这里的主键
图 1:
student_ID project_ID
1 7
2 7,1
3 4,1,9
4 1,3
5 1
图 2:
student_ID project_ID
1 7
2 1
2 7
3 4
3 1
3 9
4 1
4 3
5 1
插图 1:我知道如果这将是一个表的结果,这将违反 1NF,因为每个元组的值多于一个。
插图 2:由于它们是主键,因此不允许重复,即使我从 student_ID 中删除主键,我仍然是多余的。
我该如何解决这个问题?
提前致谢:)
【问题讨论】:
标签: mysql sql primary-key database-normalization