По итогам онлайн-консультации. Рекомендую внимательно прочитать, прежде, чем задавать вопросы. Это поможет многое прояснить.
Данные, которые необходимо хранить в базе: ФИО курсанта, номер группы, количество курсантов в группе, ФИО руководителя(преподаватель), тема доклада, дата доклада, название секции, количество докладов в год (вычисляемое поле).
Для начала придумываем данные, похожие на реальные (вычисляемые поля пока не берём, с ними разберёмся позднее).
|     ФИО курсанта  |        Номер группы  |        Кол-во курсантов в группе  |        ФИО преподавателя  |        Тема доклада  |        Название секции  |        Дата доклада  |   
|     Алиев А.В.  |        761  |        25  |        Газаев Ю.О.  |        Методы восстановления организма после   тренировки  |        Спорт  |        21-окт-09  |   
|     Катчура А.Ю.  |        861  |        30  |        Жабченко И.П.  |        Экономика на стадиях ее развития  |        Экономика  |        10-дек-09  |   
|     Кобин С.С.  |        763  |        26  |        Луческу М.С.  |        Применение квантовой физики  |        Физика  |        04-ноя-09  |   
|     Милевский А.О.  |        762  |        27  |        Михайличенко О.Ю.  |        Особенности весенней погоды на Украине  |        Метеорология  |        13-ноя-09  |   
|     Шевченко А.В.  |        764  |        28  |        Блохин О.С.  |        Мыслители 14 века  |        Философия  |        20-сен-09  |   
Теперь по этим данным нужно судить, какие организовать таблицы. 
Смотрим:
Курсант Алиев учится в 761 группе.
Он может учиться в ещё какой-то группе?
Нет.
В 761 группе может учиться ещё, скажем, Романов?
Да
Поэтому нам нужно разделить группы и курсантов по двум таблицам и создать между ними связь группа-курсант один-ко-многим.
У Курсантов, как и у Преподавателей ФИО стоит разнести на 3 поля: фамилия, имя, отчество.
Может ли быть другая группа номер 761? 
Да, такая набиралась в 1996 году.
Значит номер группы не уникален, и ключом у групп будет некий код группы.
Обязательно ли номер группы – это число?
Нет, может быть группа 76а
Значит формат поля Номер группы - текстовый
Теперь доклады, руководители и секции
Смотрим:
Курсант Кобин под руководством преподавателя Луческу четвёртого ноября 2009 года выступает с докладом "Применение квантовой физики" в секции Физика
Здесь мы имеем дело с процессом - выступление с докладом.
Какие объекты участвуют в этом процессе?
Курсант, руководитель и секция.
Какие свойства характеризуют этот процесс?
Название доклада и дата выступления
Значит, нам нужно создать таблицу Курсантов (о ней уже говорилось), таблицу Руководителей и таблицу Секций.
А чтобы отобразить процесс "Выступление с докладом" нужно создать таблицу "Доклады".
Один курсант может подготовить несколько докладов?
Да
Один доклад может быть подготовлен несколькими курсантами?
Да
Один преподаватель может руководить подготовкой нескольких докладов?
Да
Один доклад может быть подготовлен при участии нескольких руководителей?
Т.к. мы рассматриваем курсантскую конференцию, то нет
На одной секции может быть заслушано несколько докладов?
Да
Один доклад может быть заслушан на нескольких секциях?
Нет
Значит, связь Докладов с Секциями и Руководителями будет вида один-ко-многим. А с курсантами связь будет многие-ко-многим. Это реализовывается так:
У таблицы Доклады будут поля:
код доклада - ключ
код секции - для связи с таблицей Секций
код руководителя - для связи с таблицей Руководителей
название доклада
дата доклада
А для связи с Курсантами нужна ещё одна таблица, назовём её Авторство. Ключевых полей у ней не будет, а будет 2 поля:
код курсанта - для связи с таблицей Курсантов
код доклада - для связи с таблицей Докладов
Таким образом, Курсант, Руководитель и Секция будут связаны с собой через Доклады.
Подумайте над тем, где может применяться разрабатываема БД и сделайте ввод, возможно, понадобится ввести в таблицы несколько полей, не заданных условием.
Немає коментарів:
Дописати коментар