Поэтому я вызвался создать систему регистрации для образовательного служения моей поместной церкви. Он должен иметь возможность регистрировать новых студентов и отслеживать их прогресс. Вот требования, которые мне удалось собрать:
Учебное заведение предлагает несколько курсов.
Курсы имеют название и описание.
Курсы организованы по уровням. На каждом уровне есть несколько курсов.
У курсов также есть требования (т. е. другие курсы, которые необходимо пройти в первую очередь).
Студент завершает уровень, когда он прошел все курсы этого уровня.
Если студент не может пройти курс, он может повторять его столько раз, сколько хочет/необходимо.
Студенты могут пройти только один курс в семестр.
Неактивный студент — это тот, кто не зачислен в текущем семестре.
Учителя будут преподавать только один курс в семестр. Учителя могут преподавать разные курсы каждый семестр.
Могут быть семестры, которые учитель не преподает.
Теперь это моя реляционная модель.
![https://dl.dropbox.com/u/10900918/rmodels.jpg][1]
Мои вопросы:
Столов не хватает?
Глядя на semester + semester_code_description: это лучший способ сделать это? Если предположить, что в году 2 семестра и что каждый семестр имеет одинаковые месяцы начала и окончания (например, семестр 1: август — декабрь, семестр 2: январь — май), действительно ли необходима таблица semester_code_description?
Как я могу улучшить дизайн?
Извините, я не добавил стрелок. Программа, которую я использую, беспорядок.
Большое спасибо за ваше драгоценное время заранее.