Добрый день!
Проблема такая - для диплома разрабатываю базу данных для клинических лабораторий. Небольшой затык произошел с таблицей нормальных значений показателей. Дело в том что они представляют собой некие интервалы значений, некоторые из них универсальны для всех, некоторые различаются для взрослых и детей, для мужчин и женщин. Некоторые могут быть, как говорится, true или false.
Пример куска таблицы из методички для лаборантов:

И это еще не самая дикая разбросанность, они могут делиться на пол и возраст одновременно, и т. д.
Собственно, вопрос - как такое можно организовать? В БД я очень не сильна, поэтому любая полезная инфа, учебники или статьи мне очень пригодятся!

@темы: База данных

Комментарии
23.04.2015 в 12:50

Миру - мир. А Вам - пломбир!
Я так понял, СОЭ это главная модель, пол/возраст/вязкость/usw – критерии, а "1,7-2,1" это просто значения?
Тогда можно сделать таблицы:
1. ESR – cобственно, анализ СОЭ с какими-нибудь обязательными полями.
2. Fields – список полей (пол,возраст, плазма, ...), возможно, с их дополнительными аттрибутами вроде типа данных или каких-то ограничений.
3. ESR_Fields – таблица для связи типа многие-ко-многим, где будут хотя бы три поля: ключ esr, ключ поля и его значение.
Гуглить про нормализацию и нормальные формы.
В реальной жизни часто базу наоборрот денормализуют в угоду скорости.
23.04.2015 в 13:32

Скептичный циник, СОЭ это один из параметров в исследовании. а у этого параметра как бы подпараметры, которые зависят от пола и возраста.
23.04.2015 в 13:47

Я знаю, что я гений, но мне от этого ничуть не легче.
.Тапка., начать всё стоит с нормализации "доменной области".
Если говорить про анализы, картинка примерно следующая: есть лабораторный анализ, в него входит 1 - n исследований. Каждое исследование характеризуется набором проверяемых параметров. Каждый параметр имеет единицу измерения и фактическое значение. Значение параметра может быть числовым, логическим, строковым, значением из справочника.
Помимо этого, есть справочник допустимых значений. Записи в нём относятся к измеряемым параметрам и характеризуются минимальными/максимальными/перечисленными значениями и дополнительными сведениями о пациенте/условиях проведения исследования/и т.д.
Ну и финальная стадия - у всего этого должны быть формы/отчёты, описывающие, как представлять данные пользователям (если это вообще нужно).
23.04.2015 в 13:48

Миру - мир. А Вам - пломбир!
Если есть некоторый X, у которого есть под- что-нибудь Y (критерий и подкритерии, исследование и его параметры), то это вполне обычная связь один-ко-многим, для РСУБД гуглится легко.

Все эти "мужчины"/"женщины"/"старше X"/"моложе Y"/usw (насколько вижу из картинки) реализуются группировкой в выборке ("select ... group by gender") и не являются какими-то особыми параметрами.
В случае с вязкостью смотрел бы на другие данные (ибо не особо шарю в предметной области): иметь параметр вязкость для групп вторичных моделей "плазма" и "сыворотка" (или наоборот – параметры "плазма"/"сыворотка"?), имея их в списке полей (fields) к соэ (esr).

В чём конкретно проблема и что уже пытались сделать?
23.04.2015 в 14:11

mikluho, ну да, примерно так наверное
Скептичный циник, проблема просто сообразить как сделать бд. как лучше все это внутри организовать. просто критерии и подкритерии и прочее - они все разные. до того мой опыт разработки заключался в корявой бд магазина. просто не могу как-то уложить те данные которые есть. хотелось бы вот материалов. или хотя бы как гуглить)
23.04.2015 в 15:03

Я знаю, что я гений, но мне от этого ничуть не легче.
.Тапка., ну вот и попробуй примерно так по табличкам разложить :)