Сведения о вопросе

Holish

05:21, 5th August, 2020

Как удачнее спроектировать базу данных?

Просмотров: 348   Ответов: 6

делаю небольшой сайтик для нескольких групп в универе. страничка с расписанием, файловый архив, и прочие радости. возник вопрос касательно каждодневного расписания. на страничке каждой группы будет висеть её расписание на завтра (по желанию — на любой день). на данный момент, существует две таблицы, но они пока никак не связаны друг с другом:

subjects (список предметов)
subjId (уникальный номер предмета)
subjName (полное название предмета)

groups (список групп)
groupId (уникальный номер предмета)
subjName (название группы)

необходимо сопоставить каждой отдельно взятой группе список предметов на понедельник\вторник\etc…
знание php и mysql — на начальном уровне. посему, хотел поинтересоваться у гуру, как удачнее спроектировать БД.



  Сведения об ответе

FAriza

00:28, 19th August, 2020

ну вроде ничего сложного, таблица будет примерно такая:

timetable{
subjId int
groupId int
day int
startTime time
}

расписание на день для группы:
select * from timetable,subjects where timetable.subjId=subjects.subjId and groupId= and day= order by startTime;


  Сведения об ответе

DINO

16:14, 8th August, 2020

А как же четные/нечетные недели? Ну, счас нет — потом появятся.
А номер аудитории? А ФИО препода… Ведь этой доп. инфы уже достаточно, чтобы на экзамене по предмету получить 4. :)


  Сведения об ответе

repe

16:13, 20th August, 2020

сделать one-to-many в таблице с группами.


  Сведения об ответе

dump

15:19, 29th August, 2020

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


  Сведения об ответе

pumpa

23:59, 25th August, 2020

Группы мы не трогаем т.к. у группы может быть несколько предметов. Сделаем таблицу:
id (уникальный номер)
id_group (группа)
id_subjects (предмет)
id_day (день недели)
Могут быть и другие поля вроде нижняя/верхняя неделя.
Что-бы добавить группе предмет добавляете в таблицу нужные данные. Выборка простая, выбираем все на нужную дату по нужной группе. Или выбираем все по нужной дате и делаем расписание для всех групп на этот день недели.


  Сведения об ответе

KOMP

20:36, 5th August, 2020

Лучше поздно, чем никогда :) eax.me/database-design


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться