#database-design
#база данных-проектирование
Вопрос:
Я программирую базу данных. У меня есть одно требование, я не уверен, как его реализовать.База данных содержит информацию, связанную с медициной. Это заключается в следующем:
- Расположение желудочков: Это начинается с единого поля ввода, которое превращается в 7 отдельных полей для описания желудочков:
a. Количество желудочков (Vent_No): 2 варианта = 1 или 2.
i. Если выбрано значение 1, то это поле необходимо заполнить: 1. Морфология желудочка (UniVent_Morph): 3 варианта = Правый, левый, неопределенный (для >> этого поля нам может потребоваться всплывающее окно, объясняющее, что это не относится к >> ситуациям, когда имеется «гипоплазированный» желудочек. Примерами такой ситуации являются >> несбалансированные AVSD, HLHS, PAA с IVS и т.д. Эти сердца будут закодированы с использованием выпадающего списка 2 >> желудочки). ii. Если выбрано значение 2, то в этом раскрывающемся списке отображаются 4 поля для заполнения:
- Морфология правостороннего желудочка (RitS_Vent_Morph): 3 варианта = Правый, левый, >>> Неопределенный.
- Размер правостороннего желудочка (RitS_Vent_Size): 3 варианта = Нормальный, гипопластический, >>> Увеличенный.
- Морфология левого желудочка (LftS_Vent_Morph): 3 варианта = Правый, левый, неопределенный.
- Размер левого желудочка (LftS_Vent_Size): 3 варианта = Нормальный, гипопластический, >>> Увеличенный.
б. Для сложных желудочковых пороков развития нам нужно, чтобы для описания всплывало поле ‘memo’ (это может быть в отдельной таблице, связанной полем SpcUI).
Ответ №1:
Я бы, вероятно, сделал что-то вроде этого:
Ventricles
PatientId int (not null)
VentricularMorphologyTypeid (int not null)
VentricularMorphologyid (int not null)
VentricularSizeID (int null)
Notes (nvarchar(max) null)
Затем я бы создал три таблицы поиска для потенциальных значений для typeId (1 или 2 и описания того, что такое 1 и 2 (UniVent_Morph и ?) и для идентификатора морфологии (правый, левый и неопределенный) и для размера желудочка (нормальный, гипопластический, увеличенный). Я бы создал ограничения внешнего ключа для таблиц поиска и таблицы пациентов, чтобы можно было записывать только эти значения.