在考虑1NF故障时,没有重复的元素组,如果您希望对重复的组数设置一个限制,该怎么办?

例如,您希望一个学生仅列出3个电话号码。不再。将具有以下表格的表格视为1NF故障吗?

Student 1    Phone1    Phone2    Phone3
Sally        111-1111 222-2222   333-3333
John         555-5555 999-9999   NULL

您将创建一个限制。这是可接受的,有效的数据库设计吗?

最好将电话号码放在一个单独的表格中,以应对1NF故障。如果它在单独的表中,您将如何为每个用户创建3个数字的限制?

最佳答案

不,它没有被标准化。当存在空值时,您将浪费表中的空间,并且如果您想执行诸如搜索特定电话号码之类的操作,则必须搜索所有三列。而是使用一个单独的表(例如,StudentPhoneNumbers)来存储它们。如果要将其限制为三个,请使用触发器以防止每个学生超过三个。

10-06 07:25