вопрос по проектированию БД
От: 888  
Дата: 10.05.05 05:31
Оценка:

Как перенести эту ER-модель на таблицы, стобы они удовлетворяли 3 н.ф.

Условие : если строка Т3 соответствует строке Т2, то не должно получиться так, что строкам из Т3 и Т2 соответствуют разные строки из Т1 (для строки из Т3(диагноз) надо найти строки из Т2(лечение), одной строке из Т1(ФИО пациента) соответствуют строки из Т2 и Т3 )
Re: вопрос по проектированию БД
От: Callisto  
Дата: 11.05.05 04:52
Оценка:
Здравствуйте, 888, Вы писали:

888>

888>Как перенести эту ER-модель на таблицы, стобы они удовлетворяли 3 н.ф.

888>Условие : если строка Т3 соответствует строке Т2, то не должно получиться так, что строкам из Т3 и Т2 соответствуют разные строки из Т1 (для строки из Т3(диагноз) надо найти строки из Т2(лечение), одной строке из Т1(ФИО пациента) соответствуют строки из Т2 и Т3 )


Т1(ФИО) надо связать с Т3(диагноз), а Т3 — связать с Т2(лечение)
вот и все

связка Т2 с Т1 — лишняя, да и ни одна СУБД это не позволит, т.к. возникает циклическая ссылка
Re: вопрос по проектированию БД
От: S_Ivanov Россия  
Дата: 11.05.05 05:34
Оценка:
Здравствуйте, 888, Вы писали:

[skipped]

Я бы построил следующую схему (ессно, упрощенно):



И в таблице ДиагнозыЛечения сделал бы уникальный индекс по полям idДиагноза+idЛечения.
Re[2]: вопрос по проектированию БД
От: Козьма Прутков Россия  
Дата: 11.05.05 06:10
Оценка:
S_Ivanov wrote:
> И в таблице ДиагнозыЛечения сделал бы уникальный индекс по полям idДиагноза+idЛечения.
а я бы не стал так делать, поскольку по одному диагнозу может быть
несколько лечений (например, выписано 5 препаратов, назначена операция и
физ. процедуры)

Далее.
Пациент <--- Диагноз <-- Лечение


Тут все будет точно непротиворечиво. Однако, это верно только тогда,
когда любое лечение соответствует только одному диагнозу. Если это не
так и одно лечение может быть назначено на несколько диагнозов, то

    +--------- Лечение
    |             ^
    V             |
Пациент     ДиагнозЛечение
    ^             |
    |             V
    +--------  Диагноз


В этой схеме придется опять подумать о целостности в БД, но тут наверное
придется копать в сторону составного ключа для Диагноза и Лечения (и
проверять совпадение полей Пациент_id после миграции в ДиагнозЛечение
или вовсе там сделать только один экземпляр этого поля) или просто
отказаться от затеи полностью заботиться о целостности БД схемой: есть
ведь процедуры и уж на крайний случай триггеры.
Posted via RSDN NNTP Server 2.0 beta
Да хранит вас господь в сухом прохладном месте...
Re[3]: вопрос по проектированию БД
От: S_Ivanov Россия  
Дата: 11.05.05 07:54
Оценка:
Здравствуйте, Козьма Прутков, Вы писали:

КП>а я бы не стал так делать, поскольку по одному диагнозу может быть

КП>несколько лечений (например, выписано 5 препаратов, назначена операция и
КП>физ. процедуры)

[skipped]

Полностью согласен. Потому и сделал в своем посте ремарочку, что схема упрощенная.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.