我目前正在努力了解SQL中插入/删除/修改异常的细微差别。
目前,我试图理解的例子如下:
ENROLLMENT
StudentID(PK) StudentName ClassID ClassName
111 Joe E1 English1
222 Bob E1 English1
333 Mary H1 History1
这个例子想让我回答的问题是:
以下哪项导致插入异常?
答案为
插入没有类的学生
和
插入没有学生的类
我真的不明白为什么其中一个答案比另一个更正确,为什么,或者如何。在我看来,两者都可以接受。提前谢谢。
您需要考虑如何将数据自然地添加到系统中(即在现实世界中发生了一系列事件(。
在这种情况下,您将在注册之前创建一组类,然后在学生注册时创建并分配给他们。
你不太可能创建一组学生,然后创建并为每个学生分配课程。
一个班级可能只能容纳30名学生。你如何处理任何想要注册该班的额外学生?
如果你注册了100名学生,然后决定创建课程,你会创建哪些科目?
为什么学生决定报名?[大概是因为提供的课程。]
您可以在时间表中创建尽可能多的类。实际注册的学生人数可能意味着一个班级被取消,但它必须首先存在。
总之,"插入没有班级的学生"更有可能导致插入异常。