我有这个记录学生犯罪的项目。
这是怎么回事。
想象一下,一个班级的女孩犯了作弊行为。然后将她的数据添加到表中。然后同一个女孩又犯了一个罪 - 破坏行为。她的信息再次存储在数据库中。所以它在表格中看起来像这样。 (在同一天完成)
Record Number Student_ID Name OffenseCode OffenseDesc
1 178003 Girly N Cheating
2 178003 Girly B Vandalism
然后我的桥接实体在Girly的条目中有以下数据
RecordNumber OffenseNumber Student_ID OffenseCode Count Remarks
1 1 178003 N 0 WARNING
2 2 178003 B 1 CALL PARENT
然后在DataGridView(使用VB.NET)中发生这种情况
Record Number Student_ID Name OffenseCode OffenseDesc
1 178003 Girly N Cheating
2 178003 Girly B Vandalism
3 178003 Girly N Cheating
4 178003 Girly B Vandalism
我INNER加入我的表来获得结果。如果你必须知道表格
学生 - Record_Number(PK),Student_ID,姓名,班级,日期提交
bridge - Record_Number(PK),OffenseNum(PK),Student_ID,Offense_Code,Count,备注
攻击 - OffenseNum(PK),OffenseCode,OffenseDesc
如何解决上述问题?
答案 0 :(得分:2)
以下是表架构的外观:
您可能甚至需要额外的备注表,因为有些人可能需要在事件完全解决之前对事件发表评论。
然后您的网格查询将如下所示:
SELECT RecordNumber, StudentID, StudentName, OffenseCode, OffenseDesc
FROM Incident i
INNER JOIN OffenseType o ON o.OffenseCode = i.OffenseCode
INNER JOIN Student s on s.StudentID = i.StudentID