我在SQL Server中有学生表。
在我的网络应用程序中,我有textBox
,我可以输入日期(dd-mm-yyyy
)。这个日期意味着任何(应用程序确切知道哪个)学生今天缺席。
如何在SQL Server中保存此日期?
当学生每一天都缺席一天时没有问题,因为我可以在学生表中创建一个额外的专栏并保存缺席日期。
但我不知道学生将缺席多少天。我可以在我的学生表中添加一千列,并在那里写下缺席日期,但这是非常糟糕的解决方案。
那么,如何在SQL中保存缺席日期?
我在ASP.NET,C#,SQL Server中编写了我的Web应用程序。
答案 0 :(得分:2)
您需要另外一张表来跟踪学生缺席的日期。
说你当前的表格如下:
Student
-------
StudentId [PK]
...
所以你现在要创建另一个表:
StudentAbsent
-------
StudentAbsentId [PK]
StudentId [FK, Student.StudentId]
AbsentDate
要获取id=5
的学生缺席的日期,您可以在SQL中执行以下操作
SELECT AbsentDate FROM StudentAbsent
WHERE StudentId = 5
哦,顺便说一句,你想了解更多有关人际关系的信息。如果是 1-1关系,则table1
的一行与table2
的一行相关。
如果它是 1-n关系,则table1
的一行与table2
的多行相关(如上所述)
如果它是 n-n关系,则table1
的一行与table2
的多行相关,反之亦然。
答案 1 :(得分:1)
您必须创建另一个名为 absents 的表,其中包含三列:
id列只是缺席的id(对于表中的每一行都有id是一个好习惯)。 student_id是对student表的id列的引用,用于标识正确的学生。日期栏是缺席的日期。
另一个好的做法是在内部创建关系并将触发器设置为删除等操作(如果学生被删除,您应该怎么做?)。