Инструмент планирования: для каждого ученика и каждого учебного дня отдельная таблица? [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Инструмент планирования: для каждого ученика и каждого учебного дня отдельная таблица? [дубликат]

Сообщение Anonymous »

С помощью PHP и MySQL я создаю инструмент планирования для моего друга, который обучает студентов. Я сомневаюсь в том, как настроить дизайн моей базы данных. Я думаю, мне нужно следовать ответу Злого Волка, но я не уверен в своей ситуации.
Желаемая функциональность:
  • Учащиеся сообщают о недоступности для каждого учебного дня.
  • Учителю предоставляется графический обзор недели, показывающий доступность каждого учащегося для каждых 75 миллионов временных интервалов.
  • li>
    Учитель составляет соответствующее расписание (нажимает на доступные временные интервалы и назначает их ученикам)
  • Его расписание хранится в базе данных.
  • (В будущем я хотел бы иметь автоматическое расписание инструментов.)
  • В течение учебного года каждая неделя одинакова. Учитель по сути просто составляет расписание на 1 неделю.
  • Хотя продолжительность урока фиксирована (75 минут), уроки могут начаться в любую минуту дня.
(Примечание: за учебный год учится всего около 15 учеников)
На данный момент выполнено:
При использовании поддельных/введенных вручную данных графический обзор и отображение доступных временных интервалов работают.
Но после прочтения здесь о том, что никогда не следует хранить данные массива в таблице MySQL , я сомневаюсь, как правильно хранить данные, как настроить структуру своей базы данных. Думаю, мне нужно следовать ответу Злого Волка, но я не уверен в своей ситуации.
Текущая структура базы данных предположений:
  • Таблица «Студенты» с идентификатором, контактными данными, предпочтениями и т. д.
  • Таблица для каждого студента, содержащая данные о недоступности студента.
  • Таблица для каждого учебного дня, содержащая все временные интервалы, заблокированные из-за недоступности ученика или запланированного урока.
Таблицы будут выглядеть следующим образом :

Код: Выделить всё

Table "Students"
+----------+------+-------+-----
student_id | name | email | ...
+----------+------+-------+-----
331        | John | ...   | ...
145        | Pete | ...   | ...

Код: Выделить всё

Table "Student_John"
+-------+------------------+------------
schoolday | time_unavailable | student_id
+-------+------------------+------------
2       | 13:00-14:00      | 331    // on Monday, John is unavailable from 13:00-14:00
2       | 16:10-17:00      | 331    // on Monday, John is also unavailable from 16:10-17:00
3       | 08:00-13:00      | 331    // on Tuesday, John is unavailable from 08:00-13:00

Код: Выделить всё

Table "Student_Pete"
...

Код: Выделить всё

Table "Schoolday_Monday"
+---------+-------------+----------------+------------+--------
record_ID | time        | status         | student_id | schoolday
+-------+---------------+----------------+------------+--------
001       | 13:00-14:00 | unavailability | 331        | 2
002       | 16:10-17:00 | unavailability | 331        | 2
003       | 16:10-17:25 | lesson_booked  | 145        | 2   // Teacher scheduled a lesson with Peter on Monday 16:10-17:25

Код: Выделить всё

Table "Schoolday_Tuesday"
...
Правильный ли это способ хранения всех моих данных? И я могу использовать INNER JOIN для презентации?
Спасибо за совет!

Подробнее здесь: https://stackoverflow.com/questions/787 ... rate-table
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»