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

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

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

leshqow

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

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

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

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

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

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

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

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

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

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

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

Это как раз то за что студенты должны платить денежку, ибо на каждого студента у преподавателя свой вариант.
Реальная жизнь тут никаким боком.
...
Рейтинг: 0 / 0
23.05.2020, 10:08
    #39960987
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая схема БД из 3 сущностей
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
23.05.2020, 10:35
    #39960990
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простейшая схема БД из 3 сущностей
fkthat
Если опираться на это, то, можно трактовать как "обращение к врачу".

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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