Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Простейшая схема БД из 3 сущностей  [new]
leshqow
Member

Откуда:
Сообщений: 51
Есть пациенты, диагнозы и случаи. У меня возникли сомнения по поводу связей. У случая может быть много диагнозов, но один пациент, т.е. связь от случая к пациентам один к одному ? Прошу совета по связям в схеме.

К сообщению приложен файл. Размер - 88Kb
22 май 20, 12:20    [22137607]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
Если у тебя "случай - диагноз" это "1 - М", то вместо поля iddiagnosis в таблице cases должно быть поле idcase в таблице diagnosis, которое должно быть внешним ключом к таблице cases. И в таблице пациентов поле id_case не нужно.

Сообщение было отредактировано: 22 май 20, 12:49
22 май 20, 12:49    [22137629]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
leshqow
Member

Откуда:
Сообщений: 51
Переработал схему. Пациент - случай - диагноз. У пациента может быть много случаев, у случая много диагнозов.
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

К сообщению приложен файл. Размер - 82Kb


Сообщение было отредактировано: 22 май 20, 12:59
22 май 20, 13:00    [22137640]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50050

leshqow
Я же смогу сделать выборку

Попробуй. Это не займёт много времени, а личный опыт - лучший учитель.

Posted via ActualForum NNTP Server 1.5

22 май 20, 13:13    [22137651]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
leshqow
Переработал схему. Пациент - случай - диагноз. У пациента может быть много случаев, у случая много диагнозов.

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

leshqow

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

Не совсем. У тебя одному пациенту и случаю может соответствовать много диагнозов. Поэтому по случаю ты однозначно диагноз не выберешь.
22 май 20, 13:53    [22137695]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
leshqow
Member

Откуда:
Сообщений: 51
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.
22 май 20, 14:33    [22137733]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3208
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.
Не должно бы. Если визит+диагноз это натуральный ключ, то дважды за визит один и тот же диагноз записать не получится, а то что пациенту уже 15 лет рекомендуют бросить нюхать клей не первый раз диагностируют одно и то же, ну так это нормально. Опять-таки, дата диагноза будет разная между визитами.
22 май 20, 14:51    [22137753]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.

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

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

Сообщение было отредактировано: 22 май 20, 15:07
22 май 20, 15:05    [22137763]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
leshqow
Member

Откуда:
Сообщений: 51
fkthat
leshqow
Но в таблице diagnosis будет дублирование значений, каждому id случая будут заболевания и коды повторяться.

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

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

Согласен, теперь должно быть окончательно.

К сообщению приложен файл. Размер - 82Kb
22 май 20, 15:55    [22137783]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
leshqow
Согласен, теперь должно быть окончательно.

Да, отлично. Давай зачетку Картинка с другого сайта.
22 май 20, 16:21    [22137795]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
leshqow
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

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

зы: а куда serial то подевался у вас? верните serial везде!

Сообщение было отредактировано: 22 май 20, 17:27
22 май 20, 17:26    [22137831]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61975
Блог
leshqow
Есть пациенты, диагнозы и случаи

А что такое "случаи"? Чему в реальной жизни они соответствуют?
22 май 20, 22:32    [22137979]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Злой Бобр
Member

Откуда: Украина, Кривой Рог
Сообщений: 3476
softwarer
А что такое "случаи"? Чему в реальной жизни они соответствуют?

Это как раз то за что студенты должны платить денежку, ибо на каждого студента у преподавателя свой вариант.
Реальная жизнь тут никаким боком.
23 май 20, 09:44    [22138069]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
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 -- М".
23 май 20, 10:08    [22138072]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61975
Блог
fkthat
Если опираться на это, то, можно трактовать как "обращение к врачу".

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

Сообщение было отредактировано: 23 май 20, 10:35
23 май 20, 10:35    [22138075]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
softwarer

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


Я немного неудачно выразился. Лучше сказать: "это какая-то проблема, по поводу которой мембер обратился к врачу". Приходит, например, кто-то в поликлинику и говорит: "Доктор, у меня член позеленел". Это кейс. Он со своим зеленым членом может ходить туда дюжину раз и ему полджины раз ему при этом поставят разные диагнозы - это уже будут соответственно "визиты" и "диагнозы" и все эти "визиты" и "диагнозы" будут относиться к одному и тому же кейсу "зеленый член" . Т.ч. если крайняя схема и не совсем до конца верная, то все-таки где-то близко к тому.

Сообщение было отредактировано: 23 май 20, 12:08
23 май 20, 12:07    [22138094]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 61975
Блог
fkthat
Я немного неудачно выразился. Лучше сказать: "это какая-то проблема, по поводу которой мембер обратился к врачу". Приходит, например, кто-то в поликлинику и говорит: "Доктор, у меня член позеленел". Это кейс.

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

  • могут относиться к одному диагнозу (доктор, у меня кашель, насморк и температура)
  • могут относиться к разным диагнозам (доктор, у меня кашель, насморк, температура и член позеленел)
  • жалоба может относиться к нескольким диагнозам (доктор, у меня кашель - батенька, так ведь у Вас ОРВИ и вдобавок хронический бронхит)
  • жалоба может вообще ни к чему не относиться (доктор, у меня в боку чешется - так почешите и идите домой).

В общем, в моём представлении "случаев" как объектов учёта нет. Это трепологическое слово - "пацаны, а вот был такой случай, пришёл пациент с колитом..." А в БД должны быть визиты к врачу, анамнез (те самые жалобы), диагнозы, лечение - примерно так.

Сообщение было отредактировано: 23 май 20, 12:21
23 май 20, 12:21    [22138099]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
softwarer
В общем, в моём представлении "случаев" как объектов учёта нет. Это трепологическое слово - "пацаны, а вот был такой случай, пришёл пациент с колитом..." А в БД должны быть визиты к врачу, анамнез (те самые жалобы), диагнозы, лечение - примерно так.

"Кейс" это все-таки не "жалоба". Но с тем что выше я согласен - понятие и вправду черезчур общее, чтобы вести ему учет, именно что "вот был такой случай". Если "Доктора Хауза" посмотреть на англ., то там как раз слово "case" постоянно используется, и, вот, по сути, там как раз одна серия - это один "кейс" :))
23 май 20, 12:40    [22138104]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда
Алексей Роза
leshqow
Я же смогу сделать выборку ID случая, фио пациента, код диагноза, имя диагноза, дата открытия и закрытия если сгенерирую эту схему?

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

зы: а куда serial то подевался у вас? верните serial везде!
23 май 20, 12:53    [22138107]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
Алексей Роза
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда

Это понятно, но речь о другом. В понедельник пришел человек к венерологу (зеленый член). В четверг он же пришел к проктологу (попа болит). Это один кейс или два разных? Учитывая при этом, что на след. неделе может оказаться, что оба этих симптома у него из-за одного и того же заболевания. По-моему, и вправду, тут лучше просто отказаться от такой сущности как "кейс" и фиксировать только конкретные факты: "пришел", "ушел", "вставили ректальный зонд", "ампутировали голову" и т.п.
23 май 20, 16:19    [22138181]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Wlr-l
Member

Откуда:
Сообщений: 520
leshqow,

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

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

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

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

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

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

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

Каждый больной может не болеть, или болеть один или несколько раз.
Каждое заболевание характеризуется кодом МКБ10 (диагнозом) и является одним случаем заболевания. Каждый случай заболевания относится к одному и только одному больному.

Сообщение было отредактировано: 23 май 20, 16:26
23 май 20, 16:25    [22138186]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
fkthat
Алексей Роза
case - факт обращения пациента в больницу
все доктора, диагнозы, кабинеты привязываются туда

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

разные естественно кейсы.
если оба из одной болезни, значит один кейс закроется, только и всего.
23 май 20, 16:33    [22138188]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

Откуда:
Сообщений: 2417
Алексей Роза
если оба из одной болезни, значит один кейс закроется, только и всего.

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

Сообщение было отредактировано: 23 май 20, 16:36
23 май 20, 16:37    [22138190]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
fkthat
Member

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

Если он снова заболел не через полгода, а всего через неделю?
23 май 20, 16:39    [22138194]     Ответить | Цитировать Сообщить модератору
 Re: Простейшая схема БД из 3 сущностей  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
fkthat
Алексей Роза
если оба из одной болезни, значит один кейс закроется, только и всего.

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

есть такая вещь, как "карточка пациента". Туда и пишутся все события.
Как один бесконечный кейс. Но с конечными кейсами интереснее.
есть added и closed...
23 май 20, 17:05    [22138210]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Проектирование БД Ответить