创建具有不同列数的SQL表

时间:2010-09-21 17:56:11

标签: sql-server tsql

我有两张桌子,老师和学生说。我想构建一个名为class的第三个表。

班级表将为班级老师提供一列,但我想看看他们是否是代表学生的优雅方式。我的第一个想法就是说30列.. student1,student2并且每个都有回拨到学生表中的一行。

但我要问是否有更优选的解决方案。上述解决方案似乎很笨拙。

4 个答案:

答案 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)

非常笨重。

有三个表:

    <击>
  1. 教师
  2. 学生
  3. TeacherStudent,这是加入两者的多人表。
  4. 在另一个答案中表达了pivot方法。这更有意义。