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

Откуда:
Сообщений: 22
Возникла проблема описать поле симптомы в таблице Прием(поля: дата осмотра, код места осмотра, код пациента, код врача, симптомы)
PS также есть таблицы Пациент, Врач, Диагноз, Лекарства, Место осмотра

Поле должно содержать несколько симптомов, а также должны реализовываться следующие запросы:
1. Вывести фиО пациентов, имеющих не менее 3 сходных симптомов болезни, а также их предполагаемые диагнозы
2. Вывести все виды диагнозов, поставленных врачами центра по любым 2 симптомам

спасибо
17 окт 11, 17:44    [11453859]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
И с какой проблемой вы сталкнулись ?
17 окт 11, 17:46    [11453874]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

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

с проблемой составления данных запросов
17 окт 11, 17:51    [11453916]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
разделили данное поле:симптом1, сиптом2, симптом3.
запросы написали все работает.

ошибка: а если есть 4 симптом, нужна какая-то система
17 окт 11, 17:56    [11453970]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
iljy
Member

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

соответственно делайте таблицу симптомы и организуйте связь многие-ко-многим с пациентом
17 окт 11, 17:59    [11454011]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
с проблемой составления данных запросов

И где же ваш вариант запроса ? Его результат ? Или сообщение об ошибке ?
17 окт 11, 18:00    [11454028]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
1) Вывести фамилии и инициалы пациентов, имеющих не менее трех сходных симптомов болезни, а также предполагаемые диагнозы.
select distinct priem.data, 'ФИО' = pacient.fam+' '+left(pacient.name, 1)+'.'+left(pacient.l_name, 1)+'.' , simptom1.nazv_simp1, simptom2.nazv_simp2, simptom3.nazv_simp3, diagnoz.nazv_diag
from pacient, simptom1, simptom2, simptom3, diagnoz, priem
where fam like '%' and
pacient.id_pac=priem.id_pac and
priem.id_simp1=simptom1.id_simp1 and
priem.id_simp2=simptom2.id_simp2 and
priem.id_simp3=simptom3.id_simp3 and
diagnoz.id_diag=priem.id_diag and
simptom1.nazv_simp1='Кашель' and
simptom2.nazv_simp2='Головная боль' and
simptom3.nazv_simp3='Мышечная боль'

Результат

data ФИО nazv_simp1 nazv_simp2 nazv_simp3 Nazv_diag
2011-03-01 Бушин К.А. Кашель Головная боль Мышечная боль Пневмония
2011-04-11 Комский Л.Ф. Кашель Головная боль Мышечная боль Пневмония
2011-04-29 Корзникова Е.Н. Кашель Головная боль Мышечная боль Пневмония

ошибка в том что данный способ не есть хорошо, нужна переорганизация таблицы с симптомами
17 окт 11, 18:13    [11454123]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Diagor
Member

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

>если есть 4 симптом, нужна какая-то система
"система" называется "2я нормальная форма"
У осмотра должен быть подчинённый список "симптомы", что-то типа: id, id
осмотра, id из справочника симптомов, комментарий.

Posted via ActualForum NNTP Server 1.4

17 окт 11, 18:13    [11454125]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

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

Так реорганизуйте ее
17 окт 11, 18:18    [11454161]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
Diagor
>если есть 4 симптом, нужна какая-то система
"система" называется "2я нормальная форма"
У осмотра должен быть подчинённый список "симптомы", что-то типа: id, id
осмотра, id из справочника симптомов, комментарий.





и как в вашем случае вы представляете запрос опубликованный выше
17 окт 11, 18:19    [11454171]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
Glory
Akira4
ошибка в том что данный способ не есть хорошо, нужна переорганизация таблицы с симптомами

Так реорганизуйте ее


как???
17 окт 11, 18:20    [11454186]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
как???

Так, как вам удобнее
17 окт 11, 18:22    [11454206]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
iljy
Member

Откуда:
Сообщений: 8711
Akira4
Diagor
>если есть 4 симптом, нужна какая-то система
"система" называется "2я нормальная форма"
У осмотра должен быть подчинённый список "симптомы", что-то типа: id, id
осмотра, id из справочника симптомов, комментарий.





и как в вашем случае вы представляете запрос опубликованный выше

Тривиально.

Akira4
Glory
пропущено...

Так реорганизуйте ее


как???

Вам сказали уже как.
17 окт 11, 18:23    [11454217]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
Я не понимаю...
17 окт 11, 18:27    [11454253]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
Я не понимаю...

О чем ваш вопрос
о том, как спроектировать структуру под запросы ?
или
о том, как написать запросы под существующую структуру ?
17 окт 11, 18:31    [11454283]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
Glory
Akira4
Я не понимаю...

О чем ваш вопрос
о том, как спроектировать структуру под запросы ?
или
о том, как написать запросы под существующую структуру ?



структуру под запросы. каким образом вообще прописать несколько симптомов?
17 окт 11, 18:35    [11454328]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
структуру под запросы. каким образом вообще прописать несколько симптомов?

Для этого есть форум Проектирование БД
17 окт 11, 18:36    [11454335]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
если структура выглядит следующим образом

таблица Симптомы
id id_osmotr id_simp
1 1 1
2 1 2
3 2 2
4 2 3


как в запросе проверить повторяющиеся симптомы? (Вывести фамилии и инициалы пациентов, имеющих не менее трех сходных симптомов болезни, а также предполагаемые диагнозы.)
17 окт 11, 18:44    [11454386]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
как в запросе проверить повторяющиеся симптомы?

использовать GROUP BY, HAVING, COUNT()
17 окт 11, 18:51    [11454408]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
Akira4,

Думаю, тебе надо почитать про EAV model, которая применяется в том числе и для медицинских учреждений.
17 окт 11, 18:57    [11454451]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
iljy
Member

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

ну какая тут EAV, о чем вы? У него не множество различных параметров, а массив одинаковых. Банальная таблица связей.
17 окт 11, 19:06    [11454518]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
iljy
Member

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

хотя конечно если рассматривать каждый симптом как параметр... Все равно, нет заранее определенного множества параметров для сущности, которым нужно задать значения, наоборот - само множество по сути является значением.
17 окт 11, 19:13    [11454551]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
Glory
Akira4
как в запросе проверить повторяющиеся симптомы?

использовать GROUP BY, HAVING, COUNT()


легко сказать, да трудно сделать, кроме count мне ничего не известно
18 окт 11, 19:01    [11461934]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Glory
Member

Откуда:
Сообщений: 104751
Akira4
кроме count мне ничего не известно

Что мешает узнать про остальное ?
18 окт 11, 19:15    [11462015]     Ответить | Цитировать Сообщить модератору
 Re: База данных Больница  [new]
Akira4
Member

Откуда:
Сообщений: 22
в общем вот что получилось по структуре базы данных

CREATE TABLE priem
(id_priem INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
data DATE NOT NULL,
id_mesto INT NOT NULL,
id_pac INT NOT NULL,
id_doc INT NOT NULL,
id_diag INT NOT NULL);

INSERT INTO priem (data, id_mesto, id_pac, id_doc, id_diag)
VALUES
('2011-01-03','2','1','1','1'),
('2011-01-27','1','2','1','2'),
('2011-02-05','2','3','2','3'),
('2011-02-14','1','4','3','4'),
('2011-02-17','1','5','2','5'),
('2011-03-01','1','6','4','6'),
('2011-03-21','2','7','3','7'),
('2011-03-22','2','8','2','8'),
('2011-03-29','1','9','1','9'),
('2011-04-07','2','10','3','3'),
('2011-04-11','1','11','2','6'),
('2011-04-15','2','12','1','1'),
('2011-04-29','1','13','3','6'),
('2011-05-13','1','14','2','3'),
('2011-06-09','2','15','4','3');

CREATE TABLE simptom
(nazv_simp CHAR(20) NOT NULL,
id_simp INT NOT NULL IDENTITY(1,1) PRIMARY KEY);

INSERT INTO simptom (nazv_simp)
VALUES
('Озноб'),
('T 38-39'),
('Мышечная боль'),
('Насморк'),
('Заложенность носа'),
('Тошнота'),
('Боль в горле'),
('Рвота'),
('Головная боль'),
('Боль в сердце'),
('Резкая боль'),
('Кашель '),
('Боль в желудке'),
('Пятна по телу'),
('Зуд ');


CREATE TABLE osmotr
(id_osmotr INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
id_priem INT NOT NULL,
id_simp INT NOT NULL);


INSERT INTO osmotr (id_priem, id_simp)
VALUES
('1','1'),
('1','2'),
('1','3'),
('2','1'),
('2','2'),
('2','3'),
('3','2'),
('3','3'),
('3','5'),
('3','7'),
('4','3'),
('4','2'),
('4','5'),
('5','7');

не получается составить запрос в котором требуется вывести номера осмотров, при которых было выявлено не менее 3 совпадающих симптомов(также вывести названия симптомов и их предполагаемые диагнозы)

Сообщение было отредактировано: 18 окт 11, 20:13
18 окт 11, 20:10    [11462314]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить