|
|
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
Прошу помочь решить мне следующий воспрос Задача: Есть учебное заведение, начальная задача состояла в том чтобы автоматизировать работу отдела договоров т.е. хранение информации о заключенных договорах на обучение и данных участников договора затем появилась необходимость на основании заключеннных договоров организовать хранение данных об учащихся, в связи с чем была создана таблица Students для хранения данных студентов, с собственным идентификатором PIN - № студенческого билета Но обнаружилась проблема в том что если с одним физическим лицом заключен 2-й договор на обучение, то нельзя однозначно по идентификатору PIN опредилить № договора студента В связи с этим первое что приходит в голову, использовать в таблице Students в качестве идентификатора № договора на обучение, т.е. создать отношение 1:1 между таблицами Students и Contracts с каскадным обновлением и удалением связанных записей, но т.к. данные в таблицу Students вносятся не одновременно, не удается добавить запись в Contract не добавляя связанной записи в Students Подскажите что изменить в структуре или связях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 21:56 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
Непонятно, почему не удается? Добавляешь в таблицу Students поле ContractID, которое ссылается на таблицу Contract. Вначале вносится запись в таблицу Contract, а потом в Students. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 22:20 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
Goffman пишет: > Непонятно, почему не удается? > Добавляешь в таблицу Students поле ContractID, которое ссылается на > таблицу Contract. Идентифицировать студента контрактом с ним -по-моему- принципиально неправильно. Студент должен быть идентифицируем самостоятельно. Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 22:53 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
MasterZiv Идентифицировать студента контрактом с ним -по-моему- принципиально неправильно. Студент должен быть идентифицируем самостоятельно. Ссылочное поле на контракт никоим образом не предендует на идентификацию студента. Просто является одним из аттрибутов. MasterZiv Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов. И что? У автора разве есть проблемы с первичными ключами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 23:06 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
MasterZiv Просто добавте СУРОГАТНЫЙ КЛЮЧ в таблицу студентов. ... что в принципе помоему я и сделал PIN является сурогатным ключом идентифицирующим студента а вот как быть если PIN=345 (Договор №156) и PIN=876 (Договор №922)- это один и тот же человек обучающийся на 2-х факультетах, как мне понять по какому договору обучается студент с №студ (PIN)=345 запрос типа Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 23:29 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
MasterZiv Идентифицировать студента контрактом с ним -по-моему- принципиально неправильно. Студент должен быть идентифицируем самостоятельно. Почему неправильно? Ведь получается что не может быть такой ситуации, когда могли бы оказаться несколько студентов с одним и тем же № договора, т.е. получается что сурогатный ключ в принципе не нужен, т.к. идентифицировать каждого можно именно по № договора Почему студент должен быть идентифицируем самостоятельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 23:40 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
Вот вариант который мне кажется подходящим, если вы так не считаете скажите почему? Идея оставить № договора в качестве № студенческого а не использовать сурогатный ключ пришла в голову моему руководству и в принципе мне нечего было возразить т.к. на мой взгляд его действительно можно использовать, только не могу определиться до конца как именно, в каком отношении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 23:53 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
FleksВот вариант который мне кажется подходящим, если вы так не считаете скажите почему? Идея оставить № договора в качестве № студенческого а не использовать сурогатный ключ пришла в голову моему руководству и в принципе мне нечего было возразить т.к. на мой взгляд его действительно можно использовать, только не могу определиться до конца как именно, в каком отношении? Надо бы лучше узнать предметную область ... Студент - это человек, как я понимаю, у вас персон. Студент учится на одной или БОЛЕЕ образовательных программах. Договор (оно же контракт) заключается со студентом на ОДНУ образовательную программу. Поэтому - есть студент - человек с уникальным идентификатором Есть образовательная программа - то, что связано учебным годом и имеет связи с базовой образовательной программой, описывающей специальности, формы и уровни обучения и т.п. И Есть договор. Студент учится на ОП - это ОТДЕЛЬНАЯ таблица - так как один студент может учится на многих программах. Договор - связан с этой таблицей обучения студента на образовательной программе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2008, 03:01 |
|
||
|
Структура БД учебного заведения
|
|||
|---|---|---|---|
|
#18+
Надо бы лучше узнать предметную область ... Студент - это человек, как я понимаю, у вас персон. Студент учится на одной или БОЛЕЕ образовательных программах. Договор (оно же контракт) заключается со студентом на ОДНУ образовательную программу. Поэтому - есть студент - человек с уникальным идентификатором Есть образовательная программа - то, что связано учебным годом и имеет связи с базовой образовательной программой, описывающей специальности, формы и уровни обучения и т.п. И Есть договор. Студент учится на ОП - это ОТДЕЛЬНАЯ таблица - так как один студент может учится на многих программах. Договор - связан с этой таблицей обучения студента на образовательной программе. Всё именно так как вы описали, просто у меня так сформулировать не получилось :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2008, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35260371&tid=1543921]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
97ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 452ms |

| 0 / 0 |
