我有一个在线测试系统,一旦用户提交测试表单,就会像这样在表格中添加一行;
员工ID |员工姓名|日期测试1拍摄
员工可以重新参加测试,因此我想更换“测试日期测试1”。但是,对于最近提交的日期,我还想记录以前提交的所有内容。
所以基本上我想要一个第二个表,其中有3个先前的提交,如此; 员工ID |上一个提交1 |上一份提交2 |上一次提交3
是否可以基本上做"此员工在另一个日期重新参加此测试,因此请在“测试日期测试1”中将当前日期移至',将其移至&#下的另一个表中39;先前提交1'并将当前日期放在'日期测试1拍摄'?如果可能的话,它是否非常复杂??
答案 0 :(得分:2)
我建议改进设计。您的目标似乎是保持每个员工和测试类型的运行记录。你的桌子应该是这样的:
EmployeeTest table: EmployeeID, EmployeeName, TestNum, DateTaken, Score
为每次测试都向EmployeeTest表插入一行。然后,您可以编写如下查询:
select EmployeeID, EmployeeName, TestNum, DateTaken, Score from EmployeeTest order by DateTaken
按日期顺序查看员工的所有测试。或者:
select EmployeeName, TestNum, max(DateTaken), Score from EmployeeTest where EmployeeID = 'joe' and TestNum = 1
获取员工' joe'的最新日期和分数。测试#1
当然EmployeeName应该分为Employee表(EmployeeID,EmployeeName),但我现在还不想用连接来解决这个问题。
玩得开心......