我有两张桌子,老师和学生说。我想构建一个名为class的第三个表。
班级表将为班级老师提供一列,但我想看看他们是否是代表学生的优雅方式。我的第一个想法就是说30列.. student1,student2并且每个都有回拨到学生表中的一行。
但我要问是否有更优选的解决方案。上述解决方案似乎很笨拙。
答案 0 :(得分:4)
如果是我的话,我会有一个名为出席者或类似人的第四张桌子,将学生与班级联系起来,因为这是一个多对多的关系。其中包含班级ID和学生ID作为最低要求..
答案 1 :(得分:3)
类“table”不是表,而是运行带有数据透视的存储过程的结果。
数据结构如下:
Student: Id, ...
Teacher: Id, ...
StudentClass: StudentId, ClassId, ...
Class: Id, TeacherId, ...
答案 2 :(得分:3)
SQL Server有一个名为sparse columns的东西但是我会反对它。标准化您的数据,然后当您想要并排显示时,PIVOT /交叉显示结果
答案 3 :(得分:2)
非常笨重。
有三个表:
在另一个答案中表达了pivot方法。这更有意义。