powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простейшая схема БД из 3 сущностей
25 сообщений из 51, страница 1 из 3
Простейшая схема БД из 3 сущностей
    #39960659
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть пациенты, диагнозы и случаи. У меня возникли сомнения по поводу связей. У случая может быть много диагнозов, но один пациент, т.е. связь от случая к пациентам один к одному ? Прошу совета по связям в схеме.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960676
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя "случай - диагноз" это "1 - М", то вместо поля iddiagnosis в таблице cases должно быть поле idcase в таблице diagnosis, которое должно быть внешним ключом к таблице cases. И в таблице пациентов поле id_case не нужно.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960680
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переработал схему. Пациент - случай - диагноз. У пациента может быть много случаев, у случая много диагнозов.
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960689
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqowЯ же смогу сделать выборку

Попробуй. Это не займёт много времени, а личный опыт - лучший учитель.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960717
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Переработал схему. Пациент - случай - диагноз. У пациента может быть много случаев, у случая много диагнозов.

Да, теперь все ОК.

leshqow

Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

Не совсем. У тебя одному пациенту и случаю может соответствовать много диагнозов. Поэтому по случаю ты однозначно диагноз не выберешь.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960739
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960752
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.
Не должно бы. Если визит+диагноз это натуральный ключ, то дважды за визит один и тот же диагноз записать не получится, а то что пациенту уже 15 лет рекомендуют бросить нюхать клей не первый раз диагностируют одно и то же, ну так это нормально. Опять-таки, дата диагноза будет разная между визитами.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960758
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.

Это и есть 1-to-Many. Если не хочешь, чтобы одному случаю соответствовало несколько диагнозов с одинаковыми кодами, то добавь unique constraint: ("ид случая", "код диагноза") на таблицу диагнозов.

И еще. Если у каждого диагноза с определенным кодом всегда одно и то же имя, то таблицу диагнозов надо разбивать (декомпозировать) на две. ("ид диагноза" (ПК), "код диагноза", "ид случая" (ФК)) + ("код диагноза" (ПК), "название диагноза"). Иначе нарушается 3 НФ.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960772
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.

Это и есть 1-to-Many. Если не хочешь, чтобы одному случаю соответствовало несколько диагнозов с одинаковыми кодами, то добавь unique constraint: ("ид случая", "код диагноза") на таблицу диагнозов.

И еще. Если у каждого диагноза с определенным кодом всегда одно и то же имя, то таблицу диагнозов надо разбивать (декомпозировать) на две. ("ид диагноза" (ПК), "код диагноза", "ид случая" (ФК)) + ("код диагноза" (ПК), "название диагноза"). Иначе нарушается 3 НФ.

Согласен, теперь должно быть окончательно.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960780
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Согласен, теперь должно быть окончательно.

Да, отлично. Давай зачетку
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960809
leshqow
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

смотря по какому полю искать
но схема то правильная
обращение клиента надо зафиксировать (случай)
а всё что он дальше делает (поход по кабинетам) фиксируется на этом случае
ну вот по фио + случай и найдёте

зы: а куда serial то подевался у вас? верните serial везде!
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960906
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Есть пациенты, диагнозы и случаи

А что такое "случаи"? Чему в реальной жизни они соответствуют?
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960984
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
А что такое "случаи"? Чему в реальной жизни они соответствуют?

Это как раз то за что студенты должны платить денежку, ибо на каждого студента у преподавателя свой вариант.
Реальная жизнь тут никаким боком.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960987
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
leshqow
Есть пациенты, диагнозы и случаи

А что такое "случаи"? Чему в реальной жизни они соответствуют?


https://dictionary.cambridge.org/dictionary/english/case case noun (PROBLEM)

a problem, a series of events, or a person being dealt with by police, doctors , lawyers, etc.


Если опираться на это, то, можно трактовать как "обращение к врачу". Тогда логично, один кейс - несколько диагнозов: рак, ВИЧ, и гемморой. Только тогда следует "пациент - кейс" делать тоже "1 -- М".
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39960990
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Если опираться на это, то, можно трактовать как "обращение к врачу".

Если трактовать как обращение к врачу, то становится ясно, что сущность "случай" как минимум нуждается в редизайне, да и другие тоже. Насколько я в курсе, врачи делят обращения на первичные и последующие. Первичное - это когда пришёл с жалобой, последующие - когда идёт лечение. При этом в ходе последующих обращений могут меняться диагнозы, а могут возникать новые жалобы, в том числе никак не связанные с предыдущим. Вполне может оказаться, что возникла новая жалоба со своим диагнозом в то время, когда из двух изначальных один уже вылечен, а другой в процессе. Если увязывать обращения в отдельную сущность set of events, то придётся делать ещё некую сущность "визиты к врачу", причём связанную со "случаями" как многие ко многим, и тогда становится не очень понятно отличие "случая" от "диагноза". Об этом я и намекнул топикстартеру предыдущим постом.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961007
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Если трактовать как обращение к врачу, то становится ясно, что сущность "случай" как минимум нуждается в редизайне, да и другие тоже. Насколько я в курсе, врачи делят обращения на первичные и последующие. Первичное - это когда пришёл с жалобой, последующие - когда идёт лечение. При этом в ходе последующих обращений могут меняться диагнозы, а могут возникать новые жалобы, в том числе никак не связанные с предыдущим. Вполне может оказаться, что возникла новая жалоба со своим диагнозом в то время, когда из двух изначальных один уже вылечен, а другой в процессе. Если увязывать обращения в отдельную сущность set of events, то придётся делать ещё некую сущность "визиты к врачу", причём связанную со "случаями" как многие ко многим, и тогда становится не очень понятно отличие "случая" от "диагноза". Об этом я и намекнул топикстартеру предыдущим постом.


Я немного неудачно выразился. Лучше сказать: "это какая-то проблема, по поводу которой мембер обратился к врачу". Приходит, например, кто-то в поликлинику и говорит: "Доктор, у меня член позеленел". Это кейс. Он со своим зеленым членом может ходить туда дюжину раз и ему полджины раз ему при этом поставят разные диагнозы - это уже будут соответственно "визиты" и "диагнозы" и все эти "визиты" и "диагнозы" будут относиться к одному и тому же кейсу "зеленый член" . Т.ч. если крайняя схема и не совсем до конца верная, то все-таки где-то близко к тому.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961011
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Я немного неудачно выразился. Лучше сказать: "это какая-то проблема, по поводу которой мембер обратился к врачу". Приходит, например, кто-то в поликлинику и говорит: "Доктор, у меня член позеленел". Это кейс.

То есть Вы о том понятии, которое я назвал "жалоба". Тогда вопрос в том, что пациент часто приходит с несколькими жалобами, и эти жалобы:

  • могут относиться к одному диагнозу (доктор, у меня кашель, насморк и температура)
  • могут относиться к разным диагнозам (доктор, у меня кашель, насморк, температура и член позеленел)
  • жалоба может относиться к нескольким диагнозам (доктор, у меня кашель - батенька, так ведь у Вас ОРВИ и вдобавок хронический бронхит)
  • жалоба может вообще ни к чему не относиться (доктор, у меня в боку чешется - так почешите и идите домой).
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961016
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
В общем, в моём представлении "случаев" как объектов учёта нет. Это трепологическое слово - "пацаны, а вот был такой случай, пришёл пациент с колитом..." А в БД должны быть визиты к врачу, анамнез (те самые жалобы), диагнозы, лечение - примерно так.

"Кейс" это все-таки не "жалоба". Но с тем что выше я согласен - понятие и вправду черезчур общее, чтобы вести ему учет, именно что "вот был такой случай". Если "Доктора Хауза" посмотреть на англ., то там как раз слово "case" постоянно используется, и, вот, по сути, там как раз одна серия - это один "кейс" :))
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961019
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда
Алексей Роза
leshqow
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

смотря по какому полю искать
но схема то правильная
обращение клиента надо зафиксировать (случай)
а всё что он дальше делает (поход по кабинетам) фиксируется на этом случае
ну вот по фио + случай и найдёте

зы: а куда serial то подевался у вас? верните serial везде!
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961059
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда

Это понятно, но речь о другом. В понедельник пришел человек к венерологу (зеленый член). В четверг он же пришел к проктологу (попа болит). Это один кейс или два разных? Учитывая при этом, что на след. неделе может оказаться, что оба этих симптома у него из-за одного и того же заболевания. По-моему, и вправду, тут лучше просто отказаться от такой сущности как "кейс" и фиксировать только конкретные факты: "пришел", "ушел", "вставили ректальный зонд", "ампутировали голову" и т.п.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961063
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
leshqow,

Есть пациенты, диагнозы и случаи.
Да есть.

Человек заболел в феврале, пришел к семейному врачу, он поставил ему диагноз ангина с присвоением кода по МКБ-10: «J03.0». После этого человек становится больным (на иностранном языке - пациентом). Лечился он две недели, соответственно, приходил к врачу 4 раза. Это будут посещения . А в целом это один случай заболевания ангиной и 4 посещения.

В ноябре этого же года этот же человек опять объелся мороженным и пришел к своему семейному врачу, который снова поставил ему диагноз ангина... На этот раз он приходил к врачу три раза. Это второй случай заболевания ангиной и три посещения.

Таким образом, правильным ответом на вопрос: "сколько случаев заболеваний ангиной было за год" будет 2 заболевания, а на вопрос "сколько было посещений за год" - 7 посещений.

Если у этого пациента одновременно (или не совсем одновременно) были еще какие-то заболевания, например, пока шел в поликлинику с ангиной, упал и сломал себе палец, то это будет другое заболевание со своим случаем. Поскольку его лечить будет травматолог, а не семейный врач, то это будут посещения, независимые от посещений по случаю ангины.

Теперь на вопрос "Сколько всего было случаев заболеваний за год" нужно ответить "За год было три случая заболеваний". Или с расшифровкой "из них, два случая заболеваний ангиной и один случай перелома пальца".

Следовательно, для учета случаев заболеваний достаточно двух таблиц: больной и случай.

Каждый больной может не болеть, или болеть один или несколько раз.
Каждое заболевание характеризуется кодом МКБ10 (диагнозом) и является одним случаем заболевания. Каждый случай заболевания относится к одному и только одному больному.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961065
fkthat
Алексей Роза
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда

Это понятно, но речь о другом. В понедельник пришел человек к венерологу (зеленый член). В четверг он же пришел к проктологу (попа болит). Это один кейс или два разных? Учитывая при этом, что на след. неделе может оказаться, что оба этих симптома у него из-за одного и того же заболевания. По-моему, и вправду, тут лучше просто отказаться от такой сущности как "кейс" и фиксировать только конкретные факты: "пришел", "ушел", "вставили ректальный зонд", "ампутировали голову" и т.п.

разные естественно кейсы.
если оба из одной болезни, значит один кейс закроется, только и всего.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961067
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
если оба из одной болезни, значит один кейс закроется, только и всего.

А второй так и будет открытым, даже когда вылечат? А по-хорошему, это надо у врачей спросить - есть ли у них такое понятие и если есть, то что они в его значение вкладывают.
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961068
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wlr-l
lЧеловек заболел в феврале, пришел к семейному врачу, он поставил ему диагноз ангина с присвоением кода по МКБ-10: «J03.0». После этого человек становится больным (на иностранном языке - пациентом). Лечился он две недели, соответственно, приходил к врачу 4 раза. Это будут посещения . А в целом это один случай заболевания ангиной и 4 посещения.

Если он снова заболел не через полгода, а всего через неделю?
...
Рейтинг: 0 / 0
Простейшая схема БД из 3 сущностей
    #39961079
fkthat
Алексей Роза
если оба из одной болезни, значит один кейс закроется, только и всего.

А второй так и будет открытым, даже когда вылечат? А по-хорошему, это надо у врачей спросить - есть ли у них такое понятие и если есть, то что они в его значение вкладывают.

есть такая вещь, как "карточка пациента". Туда и пишутся все события.
Как один бесконечный кейс. Но с конечными кейсами интереснее.
есть added и closed...
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Простейшая схема БД из 3 сущностей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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