Реализовать требование к базе данных

#database-design

#база данных-проектирование

Вопрос:

Я программирую базу данных. У меня есть одно требование, я не уверен, как его реализовать.База данных содержит информацию, связанную с медициной. Это заключается в следующем:

  1. Расположение желудочков: Это начинается с единого поля ввода, которое превращается в 7 отдельных полей для описания желудочков:

    a. Количество желудочков (Vent_No): 2 варианта = 1 или 2.

    i. Если выбрано значение 1, то это поле необходимо заполнить: 1. Морфология желудочка (UniVent_Morph): 3 варианта = Правый, левый, неопределенный (для >> этого поля нам может потребоваться всплывающее окно, объясняющее, что это не относится к >> ситуациям, когда имеется «гипоплазированный» желудочек. Примерами такой ситуации являются >> несбалансированные AVSD, HLHS, PAA с IVS и т.д. Эти сердца будут закодированы с использованием выпадающего списка 2 >> желудочки). ii. Если выбрано значение 2, то в этом раскрывающемся списке отображаются 4 поля для заполнения:

    1. Морфология правостороннего желудочка (RitS_Vent_Morph): 3 варианта = Правый, левый, >>> Неопределенный.
    2. Размер правостороннего желудочка (RitS_Vent_Size): 3 варианта = Нормальный, гипопластический, >>> Увеличенный.
    3. Морфология левого желудочка (LftS_Vent_Morph): 3 варианта = Правый, левый, неопределенный.
    4. Размер левого желудочка (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 и ?) и для идентификатора морфологии (правый, левый и неопределенный) и для размера желудочка (нормальный, гипопластический, увеличенный). Я бы создал ограничения внешнего ключа для таблиц поиска и таблицы пациентов, чтобы можно было записывать только эти значения.