Создать таблицу SQL с различным количеством столбцов - PullRequest
3 голосов
/ 21 сентября 2010

У меня есть две таблицы, скажем, учитель и ученик.Я хочу построить третью таблицу с именем class.

Таблица класса будет иметь один столбец для учителя класса, но я хочу посмотреть, является ли это элегантным способом представления учеников.Моя первая мысль состоит в том, чтобы сказать 30 столбцов .. student1, student2 и иметь запросы для каждого из них, которые привязаны к строке в таблице студентов.

Но я спрашиваю, есть ли более предпочтительныйрешение.Приведенное выше решение кажется неуклюжим.

Ответы [ 4 ]

4 голосов
/ 21 сентября 2010

Если бы это был я, у меня была бы четвертая таблица, называемая «посетители» или похожая, которая связывает учеников с классом, так как это отношение многих ко многим. Который будет содержать как минимум идентификатор класса и идентификатор студента ..

3 голосов
/ 21 сентября 2010

В SQL Server есть такая вещь, как разреженные столбцы Однако я бы посоветовал против этого.Нормализуйте свои данные и затем PIVOT / перекрестная таблица результатов, если вы хотите отобразить их рядом

3 голосов
/ 21 сентября 2010

Класс «таблица» является не таблицей, а результатом выполнения хранимой процедуры с поворотом данных.

И структура данных выглядит следующим образом:

Student: Id, ...
Teacher: Id, ...
StudentClass: StudentId, ClassId, ...
Class: Id, TeacherId, ...
2 голосов
/ 21 сентября 2010

Это очень неуклюже.

Три таблицы:

  1. Учитель
  2. Student
  3. TeacherStudent, таблица многих-многих для объединения двух.

Есть ли метод разворота, выраженный в другом ответе. Это имеет больше смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...