Рекомендации по разработке базы данных образцов рака SQL - PullRequest
0 голосов
/ 28 сентября 2019

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

Specimen_id    Variable       Value
1            Tumor_stage       pT3
1            Node_stage        pN2
1           Other_findings    diverticulitis
2            Tumor stage       pT1
2            Node_stage        pN1
2           Other_findings    adenomas
2           Other_findings    dysplasia
2           Other_findings    Crohns_disease

Я хочу убедиться, что образцы могут иметь только одну запись для некоторых переменных (то есть образцы могут иметь только один Tumor_stage и Node_stage), но могут иметьнесколько записей для других переменных - например, «Other_findings».Есть ли какие-то ограничения, которые я мог бы добавить к таблице, чтобы добиться этого?

В качестве альтернативы, я мог бы спроектировать таблицу следующим образом:

Specimen_id  Tumor_stage   Node_stage        Other_findings
1                 pT3         pN2                 ?
2                 pT1         pN1                 ?

Но тогда я не был уверен, какпривязать к образцу произвольно длинный список значений переменных «Other_findings».

Извините, если это супер просто.Я новичок в этом деле.Спасибо

1 Ответ

0 голосов
/ 28 сентября 2019

Вероятно, вам следует создать две таблицы, подобные этой:

create table specimens as (
    specimen_id int primary key,
    Tumor_stage varchar(255),
    Node_stage varchar(255)
);

create table specimens_findings as (
    specimen_findings_id int auto_increment primary key,
    Specimen_id int,
    other_finding varchar(255)
    foreign key (specimen_id) references specimens (specimen_id)
);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...