
Как перенести эту ER-модель на таблицы, стобы они удовлетворяли 3 н.ф.
Условие : если строка Т3 соответствует строке Т2, то не должно получиться так, что строкам из Т3 и Т2 соответствуют разные строки из Т1 (для строки из Т3(диагноз) надо найти строки из Т2(лечение), одной строке из Т1(ФИО пациента) соответствуют строки из Т2 и Т3 )
Здравствуйте, 888, Вы писали:
888>
888>Как перенести эту ER-модель на таблицы, стобы они удовлетворяли 3 н.ф.
888>Условие : если строка Т3 соответствует строке Т2, то не должно получиться так, что строкам из Т3 и Т2 соответствуют разные строки из Т1 (для строки из Т3(диагноз) надо найти строки из Т2(лечение), одной строке из Т1(ФИО пациента) соответствуют строки из Т2 и Т3 )
Т1(ФИО) надо связать с Т3(диагноз), а Т3 — связать с Т2(лечение)
вот и все
связка Т2 с Т1 — лишняя, да и ни одна СУБД это не позволит, т.к. возникает циклическая ссылка
Здравствуйте, 888, Вы писали:
[skipped]
Я бы построил следующую схему (ессно, упрощенно):
И в таблице ДиагнозыЛечения сделал бы уникальный индекс по полям idДиагноза+idЛечения.
S_Ivanov wrote:
> И в таблице ДиагнозыЛечения сделал бы уникальный индекс по полям idДиагноза+idЛечения.
а я бы не стал так делать, поскольку по одному диагнозу может быть
несколько лечений (например, выписано 5 препаратов, назначена операция и
физ. процедуры)
Далее.
Пациент <--- Диагноз <-- Лечение
Тут все будет точно непротиворечиво. Однако, это верно только тогда,
когда любое лечение соответствует только одному диагнозу. Если это не
так и одно лечение может быть назначено на несколько диагнозов, то
+--------- Лечение
| ^
V |
Пациент ДиагнозЛечение
^ |
| V
+-------- Диагноз
В этой схеме придется опять подумать о целостности в БД, но тут наверное
придется копать в сторону составного ключа для Диагноза и Лечения (и
проверять совпадение полей Пациент_id после миграции в ДиагнозЛечение
или вовсе там сделать только один экземпляр этого поля) или просто
отказаться от затеи полностью заботиться о целостности БД схемой: есть
ведь процедуры и уж на крайний случай триггеры.
Posted via RSDN NNTP Server 2.0 beta