I have a table that holds preferences for who each student prefers to interact with:
Student ID | Student Name | Preference1 | Preference2 | Preference3 |
---|---|---|---|---|
1 | abc | def | ghi | xyz |
2 | def | abc | ghi | xyz |
3 | ghi | abc | def | xyz |
4 | xyz | abc | def | ghi |
Each student has listed down their preference for who they like to partner with. The preference should not repeat and obviously they can not partner up with themselves. Does this table violate 3NF?
chatgpt says this:
No, this model does not adhere to the third normal form (3NF) because it introduces transitive dependencies between attributes in the Student model.
Let’s analyze the model:
Preference3, Preference2, Preference3: These attributes represent the IDs of the preferred play/work partners. However, these attributes introduce transitive dependencies because they depend on each other. For example, if we want to update or delete a preferred partner, we may need to update multiple fields in the Student table. Therefore, this violates the third normal form (3NF).
I’m not sure this is correct. Can someone explain?