2015-07-24 5 views
0

Я хочу создать типичное школьное расписание для каждого пользователя.Расписание - дизайн базы данных

Конечный продукт должен выглядеть следующим образом:

+----+---------+---------+-----------+----------+--------+ 
| h | Monday | Tuesday | Wednesday | Thursday | Friday | 
+----+---------+---------+-----------+----------+--------+ 
| 1 | SCIENCE | MATHS | ENGLISH | FRENCH | ART | 
| 2 | SCIENCE | MATHS | ENGLISH | FRENCH | ART | 
| 3 |   | MUSIC | HISTORY | GEO  |  | 
| 4 |   | MUSIC | HISTORY | GEO  |  | 
| 5 | HEALTH | PE  | MATHS  |   |  | 
| 6 | HEALTH | PE  | MATHS  |   |  | 
| 7 |   |   |   |   |  | 
| 8 |   |   |   | SCIENCE |  | 
| 9 |   |   |   | SCIENCE |  | 
| 10 |   |   | PE  |   |  | 
| 11 |   |   | PE  |   |  | 
+----+---------+---------+-----------+----------+--------+ 

Теперь я хочу, чтобы создать таблицу MySQL для этого приложения.

Моя идея была это (но это самый лучший способ, потому что эта таблица будет иметь много много столбцов):

+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+---- 
| user_id | mo1 | mo2 | mo3 | mo4 | mo5 | mo6 | mo7 | mo8 | mo9 | mo10 | mo11 | tu1 | tu2 | tu3 | tu4 | tu5 | tu6 | tu7 | tu8 | tu9 | tu10 | tu11 | we1 | we2 | ... 
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+---- 
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ... 
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ... 
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+---- 

В заключение: Что бы лучший дизайн таблицы MySQL для типичного школьное расписание (с user_id)?

Пользователь может вводить текст/тему-имя для каждого урока через множество текстовых полей HTML (возможно, есть и лучшее решение). Но одна важная вещь, которую я забыл сказать, это то, что у меня нет курса.

ответ

1

Я бы создал таблицу для каждой «сущности» («Пользователи», «Дни, темы, часы»), чтобы избежать дублирования, а затем, вероятно, сводной таблицы «Расписание».

User (id, username) 
Days (id, day_of_the_week) 
Subjects (id, title) 
Hours (id) 
Schedule (id, id_user, id_subject, id_hour, id_day) 
+0

Для того, чтобы таблица расписания выглядела как таблица, на которой я придерживался своего первого сообщения? Потому что тогда у меня было бы много строк вместо многих столбцов. –

+0

использовать только «идентификатор» сущностей в сводной таблице! Вы ошибочно используете «day_of_the_week» и «title» для столбцов «day» и «subject». – luca

+0

. Хорошо, и как мог выглядеть запрос insert/update? –

Смежные вопросы