[image]

Единая Система Выписывания Рецептов?

 
+
-
edit
 

Mishka

модератор
★★★
У меня по табличке вопрос — а как там больше 100% набирается?
   
+
-
edit
 
Abaddon>> А что поля? Важно количество рядов, а количество полей на скорость практически не влияет.
Mishka> Влияет, хотя и с меньшим коэффициентом. Особенно при вставке и наличии нескольких индексов.
а индексы не особо нужны

Abaddon>> Кстати то как ты сделал - ужоснах.
Mishka> Где я сделал?
твое предложение по формату :)

Abaddon>> Выборка быстрая, но хранить столько дублирующейся инфы... Информация о клиентах отдельно, о лекарствах отдельно, о рецептах отдельно. В результате самая большая бд (собственно рецепты) будет выглядеть примерно так:
Mishka> Правильно, нормализовать надо. Но именно тут начинает собака рыться — для нормального обновления надо достаточно много чего проверить, а для этого джойнты строить длнинные.
а вот тут надо уже знать конкретно что надо...

Abaddon>> * id рецепта (primary autoincriment)
Abaddon>> * id клиента (ключ к поиску по бд клиентов)
Abaddon>> * id лекарства (ключ к поиску по бд лекарства)
Abaddon>> * id серии выданного лекарства (добавляется update при погашении рецепта, для информации о сроках хранения итп, одновременно флаг того что лекарство получено)
Abaddon>> * дата выписки
Abaddon>> * дата погашения (не обязательно)
Mishka> Обязательно. Т.к. рецепт действует полгода и по нему можно получать 6 раз. И отношения по выполнению — будет 1:N сразу. А отношения врачей, рецептов, клиентов в чистом виде становится N:M.
тогда полученные лекарства лучше вынести отдельной таблицей

Abaddon>> * текстовый комментарий (не обязательно)
Abaddon>> такой инсерт будет выполнен моментально независимо от размера БД, поскольку уникальных полей в нем нету
Mishka> ??? Что значит фраза — уникальных полей в нем нет?
значит что не надо перекапывать всю таблицу в поисках коллизий, можно просто приписать в конец

Mishka> Mishka>> А теперь посчитаем врачей — фармацевтов не буду — я в одном-двух-трёх местах их получаю....
Abaddon>> А это на что влияет? На общую загрузку разве что. Ты целыми днями по ним ходишь?
Mishka> Я не хожу, но чтобы записаться к врачу — от месяца до трёх ждать надо. Это тебе так — сведения про загрузку врачей.
Да, но допустим врач тратит на пациента 15 минут. Допустим каждому он выпишет один рецепт (допущение спорное, кому-то назначит лекарсво не требующее рецепта, кому вообще не назначит, кому несколько выпишет, но приянть можно). Значит можно считать что один врач выписывает 8*4=32 рецепта в рабочий день. Допустим врачей 100000. 3,2 М запросов за 8 часов - это немного для современных серверов (не учитывая часовые пояса - они не одновременно все работают).

Abaddon>> Еще раз могу сказать, что неактуальные строки можно скидывать в архив, в котором обьем бд и скорость работы не играет особой роли (если надо узнать не было ли пациенту выписано не тех лекарств можно и минуту подождать ответа, хотя чтобы такую загрузку обеспечить надо туда еще не знаю что засунуть).
Mishka> Не будет врач ждать минуту. У него на стандартного пациента 15 минут. Это на всё про всё.
Я про архив неактуальных рецептов. Актуальные будут максимум 5-10 секунд выбираться. Это если все в эту бд будут ломиться.

Abaddon>> Практически все запросы затрагивают ключевые поля, а порой еще многоуровневые джойны используются.
Mishka> И что с этого?
то что запросы сложные

Mishka> У меня по табличке вопрос — а как там больше 100% набирается?
а фиг его знает... это статистика самого mysql, похоже запросы типа statement execute считаются за два
   
RU Серокой #18.01.2007 20:34
+
-
edit
 

Серокой

координатор
★★★★
Mishka> Поминте, был спор на базе про плохой почерк у докторов и результирующие ошибки?
Как раз в новостях промелькнуло, это не ты автор заметки? ;)


<...>
Как отмечает интернет-версия популярного немецкого журнала Spiegel, подобная проблема характерна и для Германии. В подтверждение своих слов издание приводит случай, описанный на одной медицинской веб-страничке: 66-летнему пациенту было назначено лекарство Mevicanor, снижающее уровень холестерина в крови, а в аптеке он получил препарат Markumar, который разжижает кровь и в случае передозировки может привести к возникновению кровотечений. Правда, больному повезло, поскольку он вовремя заметил ошибку и не стал покупать опасное для него лекарство.
<...>
...такое положение вещей не устраивает местных чиновников, а потому правительство ФРГ недавно постановило, что во всех медицинских учреждениях необходимо ввести электронные амбулаторные карты, что неизбежно приведет к появлению электронных рецептов.

В США пошли еще дальше: местные умельцы разработали систему eRx Now, основанную на Интернете и позволяющую любому врачу совершенно бесплатно составлять рецепт на компьютере. Кроме того, она способна проверить правильность дозировки и возможность замены назначенного препарата другими лекарственными средствами. <...>
 
http://www.utro.ru/articles/2007/01/18/618120.shtml
   
+
-
edit
 

Mishka

модератор
★★★
Abaddon> а индексы не особо нужны

Ну ты даёшь. А поиск лекарства по названию? А поиск пациента по имени или адресу? Рецепта по дате?

Abaddon> твое предложение по формату :)

Это не предложение по формату, это какая инфа нужна в базе. Кстати забыл указать — на каждом рецепте количество рефилов.

Abaddon> а вот тут надо уже знать конкретно что надо...

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

Abaddon> тогда полученные лекарства лучше вынести отдельной таблицей

Я же говорю, что всё нормализовать надо. Если хочешь компактно, то минимум 3 форма, но неплохо бы и 4 или 5 — чтобы не было функциональной зависимости, иначе целостность затрахаешься поддерживать.

Abaddon> значит что не надо перекапывать всю таблицу в поисках коллизий, можно просто приписать в конец

Тогда понятно почему у тебя так зависит время выборки от размера таблицы.

Abaddon> Да, но допустим врач тратит на пациента 15 минут. Допустим каждому он выпишет один рецепт (допущение спорное, кому-то назначит лекарсво не требующее рецепта, кому вообще не назначит, кому несколько выпишет, но приянть можно). Значит можно считать что один врач выписывает 8*4=32 рецепта в рабочий день. Допустим врачей 100000. 3,2 М запросов за 8 часов - это немного для современных серверов (не учитывая часовые пояса - они не одновременно все работают).

Моей жене — 4, мне иногда до 12.

Abaddon> Я про архив неактуальных рецептов. Актуальные будут максимум 5-10 секунд
выбираться. Это если все в эту бд будут ломиться.

Ещё раз — актуальные рецепты — это все за год-полтора (раньше — 2-3). В год выписываются сотни миллионов рецептов.

Abaddon> то что запросы сложные

Так я тебе про это и говорил, когда упоминал нормализацию.

Abaddon> а фиг его знает... это статистика самого mysql, похоже запросы типа statement execute считаются за два

Чего-то здесь не так.
   
+
-
edit
 
Короче хрен его знает. Спор уткнулся в необходимость тестов, а у меня нету сервера за $50000 :)
   

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru