Я пытаюсь создать страницу для отображения результатов ученика / класса по предмету / учителю.
В некоторых классах есть группы, в которых есть ученики, а в некоторых - только ученики.Предмет продуман одним или несколькими учителями.Это может измениться в будущем, и я хочу сохранить дизайн как можно более гибким (т.е. предметы могут быть разбиты на модули или на отдельные результаты испытаний, классы могут быть далее сгруппированы по годам и т. Д.)
Я хочу отобразитьВ результате получается сетка, которую я могу развернуть и свернуть, чтобы усреднить результаты (класс по Y и предмет по X).
Хотя для этого нужно иметь 3 таблицы базы данных следующим образом:
**class_structure**
id (int) PK
description (varchar)
parent_id (int) FK to id
Самый высокий уровень - это класс (без идентификатора родителя), а самый низкий уровень - это ученик.
**subject_structure**
id (int) PK
description (varchar)
parent_id (int) FK to id
Самый высокий уровень - это предмет, самый низкий - учитель
**results**
id (int) PK
class_structure_id (int) FK
subject_structure_id (int) FK
date (datetime)
reult (int)
Что вы думаете о вышеупомянутой структуре?Я полагаю, что это дает мне гибкость в будущем?
В моем приложении asp.net я запрашиваю наивысший уровень структуры класса и усредняю все результаты ниже этого (лучше мне сделать это усреднение в спроке вБД или использовать, скажем, LINQ в приложении?)
Это вернет мне набор результатов на самом высоком уровне.
Тогда мне нужно будет отобразить эту таблицу (я имею в виду просто создать HTML-таблицу в C #?) Для классов объекта (т.е. сначала создать все заголовки, а затем попытаться поместить результат вправильный столбец (хотя я не уверен, как это сделать)).
<table border="1" padding="2">
<tr>
<td></td>
<td></td>
<td colspan="2" align="center">Subj 1</td>
<td colspan="2" align="center">Subj 2</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Teacher 1</td>
<td>Teacher 2</td>
<td>Teacher 1</td>
<td>Teacher 2</td>
</tr>
<tr>
<td rowspan="2">Class 1</td>
<td>Student 1</td>
<td>90</td>
<td>55</td>
<td>75</td>
<td>100</td>
</tr>
<tr>
<td>Student 2</td>
<td>40</td>
<td>95</td>
<td>65</td>
<td>39</td>
</tr>
</table>
Затем, когда пользователь нажал на первый класс, это развернется и покажет все группы (если таковые имеются, студенты, если нет)) (передать class_structure_id выбранной ячейки в тот же метод / sproc и получить эти результаты), а затем перерисовать таблицу с дополнительным столбцом.
Это хороший способ добиться того, чего я пытаюсь достичьделать?