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