powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД учебного заведения
9 сообщений из 9, страница 1 из 1
Структура БД учебного заведения
    #35260317
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помочь решить мне следующий воспрос
Задача: Есть учебное заведение, начальная задача состояла в том чтобы автоматизировать работу отдела договоров т.е. хранение информации о заключенных договорах на обучение и данных участников договора
затем появилась необходимость на основании заключеннных договоров организовать хранение данных об учащихся, в связи с чем была создана таблица Students для хранения данных студентов, с собственным идентификатором PIN - № студенческого билета
Но обнаружилась проблема в том что если с одним физическим лицом заключен 2-й договор на обучение, то нельзя однозначно по идентификатору PIN опредилить № договора студента
В связи с этим первое что приходит в голову, использовать в таблице Students в качестве идентификатора № договора на обучение, т.е. создать отношение 1:1 между таблицами Students и Contracts с каскадным обновлением и удалением связанных записей, но т.к. данные в таблицу Students вносятся не одновременно, не удается добавить запись в Contract не добавляя связанной записи в Students
Подскажите что изменить в структуре или связях
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260340
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, почему не удается?
Добавляешь в таблицу Students поле ContractID, которое ссылается на таблицу Contract.
Вначале вносится запись в таблицу Contract, а потом в Students.
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260363
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goffman пишет:
> Непонятно, почему не удается?
> Добавляешь в таблицу Students поле ContractID, которое ссылается на
> таблицу Contract.

Идентифицировать студента контрактом с ним -по-моему- принципиально
неправильно. Студент должен быть идентифицируем самостоятельно.
Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260371
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Идентифицировать студента контрактом с ним -по-моему- принципиально
неправильно. Студент должен быть идентифицируем самостоятельно.
Ссылочное поле на контракт никоим образом не предендует на идентификацию студента.
Просто является одним из аттрибутов.

MasterZiv
Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов.

И что? У автора разве есть проблемы с первичными ключами?
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260390
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов.


... что в принципе помоему я и сделал
PIN является сурогатным ключом идентифицирующим студента

а вот как быть если PIN=345 (Договор №156) и PIN=876 (Договор №922)- это один и тот же человек обучающийся на 2-х факультетах, как мне понять по какому договору обучается студент с №студ (PIN)=345

запрос типа
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT * 
FROM Contracts c
  INNER JOIN PersonsID p
  ON p.PersonID = c.PErsonID
   INNER JOIN Students s
   ON p.PersonID = s.PersonID
    WHERE s.PIN =  345 
выдаст мне 2 записи из таблицы Contracts, и как мне понять какой именно договор нужен?
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260397
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Идентифицировать студента контрактом с ним -по-моему- принципиально
неправильно. Студент должен быть идентифицируем самостоятельно.


Почему неправильно?
Ведь получается что не может быть такой ситуации, когда могли бы оказаться несколько студентов с одним и тем же № договора, т.е. получается что сурогатный ключ в принципе не нужен, т.к. идентифицировать каждого можно именно по № договора
Почему студент должен быть идентифицируем самостоятельно?
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260407
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот вариант который мне кажется подходящим, если вы так не считаете скажите почему?
Идея оставить № договора в качестве № студенческого а не использовать сурогатный ключ пришла в голову моему руководству и в принципе мне нечего было возразить т.к. на мой взгляд его действительно можно использовать, только не могу определиться до конца как именно, в каком отношении?
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35260518
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FleksВот вариант который мне кажется подходящим, если вы так не считаете скажите почему?
Идея оставить № договора в качестве № студенческого а не использовать сурогатный ключ пришла в голову моему руководству и в принципе мне нечего было возразить т.к. на мой взгляд его действительно можно использовать, только не могу определиться до конца как именно, в каком отношении?
Надо бы лучше узнать предметную область ...
Студент - это человек, как я понимаю, у вас персон. Студент учится на одной или БОЛЕЕ образовательных программах. Договор (оно же контракт) заключается со студентом на ОДНУ образовательную программу.
Поэтому - есть студент - человек с уникальным идентификатором
Есть образовательная программа - то, что связано учебным годом и имеет связи с базовой образовательной программой, описывающей специальности, формы и уровни обучения и т.п.
И Есть договор.
Студент учится на ОП - это ОТДЕЛЬНАЯ таблица - так как один студент может учится на многих программах.
Договор - связан с этой таблицей обучения студента на образовательной программе.
...
Рейтинг: 0 / 0
Структура БД учебного заведения
    #35261342
Fleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо бы лучше узнать предметную область ...
Студент - это человек, как я понимаю, у вас персон. Студент учится на одной или БОЛЕЕ образовательных программах. Договор (оно же контракт) заключается со студентом на ОДНУ образовательную программу.
Поэтому - есть студент - человек с уникальным идентификатором
Есть образовательная программа - то, что связано учебным годом и имеет связи с базовой образовательной программой, описывающей специальности, формы и уровни обучения и т.п.
И Есть договор.
Студент учится на ОП - это ОТДЕЛЬНАЯ таблица - так как один студент может учится на многих программах.
Договор - связан с этой таблицей обучения студента на образовательной программе.

Всё именно так как вы описали, просто у меня так сформулировать не получилось :(
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД учебного заведения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]