在 DBMS 中追加可以吗?

Is appending okay in DBMS?

我有这个记录学生违规行为的项目。

事情是这样的。

想象一下 class 中的一个女孩犯了作弊行为。然后将她的数据添加到 table。然后同一个女孩又犯了一次罪——破坏公物。她的信息再次存储在数据库中。所以它在 table 中看起来像这样。 (同日完成)

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

我内心加入了我的 table 来获得那个结果。如果你一定要知道 tables

学生 - Record_Number(PK),Student_ID,姓名,Class,提交日期
桥 - Record_Number(PK),OffenseNum(PK),Student_ID,Offense_Code,计数,备注
offences - OffenseNum (PK), OffenseCode, OffenseDesc

如何解决上述问题?

您的 table 架构应该如下所示:

  1. Student — StudentID (PK), StudentName, Class
  2. OffenseType — OffenseCode (PK), OffenseDesc
  3. 事件 — Record_Number (PK), StudentID, OffenseCode, DateCommitted, Remarks

您甚至可能需要额外的 table 来表示评论,因为在事件完全解决之前可能需要多人对事件发表评论。

那么您的网格查询将如下所示:

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