Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2015, 09:16   #1
conflictogen
Пользователь
 
Регистрация: 12.05.2015
Сообщений: 15
Вопрос Правильно составить БД

Доброго времени суток!

Прошу помочь додумать алгоритм решения следующей задачи:

Есть БД (институт).
В 1й таблице ("facultet") число N (id1, id2, idN) записей (факультеты).
Во второй таблице число N записей (специальности) и поле "facultet_id" , по которому можно определить принадлежность специальности к определённому факультету.
В 3й таблице число N записей (группы студентов), и поле, к примеру "special_id", по которому определяется принадлежность данной группы студентов к определённой специальности.

Нужно продолжить алгоритм, чтобы:
1 - Была таблица с студентами, по которой можно определить, какие студенты учатся в выбранной группе;
2 - Была таблица с предметами, которые принадлежат выбранной группе. ( Один предмет может читаться в разных группах, на разных специальностях/факультетах).
3 - Была таблица с оценками, которые принадлежат определённому предмету и выбранному студенту (оценок может быть много).


Запутался, где таблицы с предметами/оценками, и принадлежности к группам/студентам.
Чтобы было проще представить мой алгоритм, прикрепил примерную схему БД и таблиц.
Изображения
Тип файла: jpg institut.jpg (15.9 Кб, 148 просмотров)
conflictogen вне форума Ответить с цитированием
Старый 12.05.2015, 09:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Запутался, где таблицы с предметами/оценками, и принадлежности к группам/студентам.
А что там путаться?
Таблицу с предметом определи: ID, название предмета
Ну а в таблице групп определи поле, где будет храниться ID предмета.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2015, 10:08   #3
conflictogen
Пользователь
 
Регистрация: 12.05.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что там путаться?
Таблицу с предметом определи: ID, название предмета
Ну а в таблице групп определи поле, где будет храниться ID предмета.
Хорошо, а таблица с оценками какую может иметь структуру ?
Оценок может быть много (например за лабы, за практику и тд ), и каждая оценка относится к предмету и студенту.
conflictogen вне форума Ответить с цитированием
Старый 12.05.2015, 10:18   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от conflictogen Посмотреть сообщение
Хорошо, а таблица с оценками какую может иметь структуру ?
Оценок может быть много (например за лабы, за практику и тд ), и каждая оценка относится к предмету и студенту.
Ну вот и храни в таблице оценок ID студента, предмета, дату создания, дату проведения, дату сдачи (можно еще пересдачу добавить) и тип. Обязательные (типа курсачи, лабы, практики) можно заводить заранее с нулем
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 12.05.2015, 10:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
дату создания, дату проведения, дату сдачи
По-моему тут и одной даты хватит. Даты оценки. Саму оценку, ID студента, ID предмета, ID Группы (ибо студень может раздвоиться по факультетам)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2015, 11:59   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Принято запоминать дату создания и удаления, лишней не будет и не мешается... Дело вкуса, конечно)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 12.05.2015, 12:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Принято запоминать дату создания и удаления
Ну тогда и лишним не будет ID препода, который запись создал. Действительно для аудита это полезно. Да даже для нормировки может кое-какую информацию дать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2015, 12:07   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну тогда и лишним не будет ID препода, который запись создал. Действительно для аудита это полезно. Да даже для нормировки может кое-какую информацию дать.
ну тогда еще и не помешает ID препода, который изменил оценку, перенес на другую дату (контрольную напр.), и по номерам пересдач преподов (первый, второй, комиссия)

Хотя тут уже надо дальше нормализовать=)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 13.05.2015, 01:03   #9
conflictogen
Пользователь
 
Регистрация: 12.05.2015
Сообщений: 15
По умолчанию

Разобрался.
Спасибо всем за ответы.
conflictogen вне форума Ответить с цитированием
Старый 13.05.2015, 09:04   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тогда еще и не помешает ID препода, который изменил оценку
Хоспдя... Кошмарный сон Оруэлла...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно составить запрос? Svetr SQL, базы данных 1 01.08.2013 10:36
Правильно составить htaccess mego4el Помощь студентам 1 14.06.2013 12:17
правильно составить формулу everest88 Microsoft Office Excel 7 22.02.2011 10:16
Не могу правильно составить команду BoT_T Общие вопросы Delphi 5 22.09.2010 14:39