Это может показаться дублированием для этого вопроса , но я проверил его, и он не отвечает на мой случай.
Мой случай :
Рассмотрим эти две таблицы:
patients | vaccines
|
id | name | birthdate | id | name
--------------------------- | ---------------
1 | John Doe | 1994-03-12 | 1 | Tetanus
--------------------------- | ---------------
2 | Jane Doe | 1996-80-02 | 2 | Hepatitis A
И эту сводную таблицу
patient_vaccine
id | patient_id | vaccine_id | date_received | comment
----------------------------------------------------------------
1 | 1 | 1 | 2019-01-01 | Lorem ipsum dolor set
----------------------------------------------------------------
2 | 1 | 2 | 2019-01-12 | Lorem ipsum dolor set
----------------------------------------------------------------
3 | 2 | 1 | 2018-09-21 | Lorem ipsum dolor set
Очевидно, чтобы сказать, что конкретный пациент принял конкретную вакцину, будет вставлена новая записьв сводной таблице, имеющей patient_id
с vaccine_id
вместе с дополнительными данными.
Но у меня есть ситуация, когда, если пациент моложе 18 лет , будетнет vaccine_id
, вместо этого будет took_all_vaccines
логическое значение.
Мой вопрос :
Что считается лучшим, поместите данные о пациентах в возрасте до 18 лет вотдельную таблицу, которая выглядела бы примерно так:
id | patient_id | took_all_vaccines | date_received | comment
----------------------------------------------------------------
1 | 1 | 1 | 2019-01-01 | Lorem ipsum dolor set
----------------------------------------------------------------
2 | 1 | 0 | 2019-01-12 | Lorem ipsum dolor set
----------------------------------------------------------------
3 | 2 | 9 | 2018-09-21 | Lorem ipsum dolor set
или я должен поместить столбец вставки took_all_vaccines
в сводную таблицу и сделать его обнуляемым, если он будет нулевым для людей старше 18 лет, что такженеобходимо, чтобы столбец vaccine_id
обнулялся для людей младше 18 лет.
так что я бы закончил с чем-то вроде этого:
id | patient_id | vaccine_id | took_all_vaccines | date_received | comment
-----------------------------------------------------------------------------
1 | 1 | 1 | null | 2019-01-01 | Lorem ipsum dolor set
-----------------------------------------------------------------------------
2 | 1 | 2 | null | 2019-01-12 | Lorem ipsum dolor set
-----------------------------------------------------------------------------
3 | 2 | null | 1 | 2018-09-21 | Lorem ipsum dolor set
Если кто-то - решение лучше, почему?а почему другой нет?