0

我在sqlite数据库中插入数据时遇到问题。我创建了一个包含3列studentid、studentname和studentmarks的表。当我为两个不同的学生插入相同的标记时,它不会插入重复的entery。如何解决它将接受的这个问题学生姓名和学生成绩重复条目。谢谢

4

3 回答 3

3

由于您有学生证,因此不需要学生姓名。该表应该有一个课程 ID/名称列,以将特定标记与学生和课程相关联。

基本上你想要三个表:

Student (ID, Name)
Course (ID, Name)
Mark (studentID, courseID, studentMark)

这被称为third normal formhttp://en.wikipedia.org/wiki/Third_normal_form

但是,如果您的数据库只需要一个表,那么您仍然必须将课程 ID 和/或名称添加到表中,并确保主键包括学生 ID 和课程 ID。

于 2013-01-27T04:35:13.990 回答
0

检查标记列上是否存在唯一约束/或者如果上述任何一种情况为真,您是否已将标记设置为主键,您应该删除唯一约束/主键以使您的代码按预期工作(在表名上删除索引 index_name) .

于 2013-01-27T05:16:28.443 回答
0

您可能已创建主键为 StudentID 的表。在这种情况下,您不能为单个学生标记插入多行。您将需要重新创建表以消除 StudentID 的主键/唯一值等限制

您还应该为Students使用主键 ( Student ID) 创建一个单独的表,您只在其中插入学生数据(每行代表一个学生)。然后为 Student_marks 创建一个表,其中 Student 与 Marks 的关系是一对多的,这意味着表中的多行属于Students_Marks单行Students

于 2013-01-27T04:37:33.597 回答