-1

あるフィールドで、考えられる症状のリストを説明する他のテーブル「sypstoms_at_arriving」を参照するテーブル「medical_observations」があります。

    CREATE TABLE `patients`(
      id_patient   INTEGER  NOT NULL PRIMARY KEY,
      name         VARCHAR(25)  ,
      address      VARCHAR(50) ,
      CONSTRAINT `uc_Info_Patient` UNIQUE (`id_patient`)           
);
INSERT INTO `patients` values (1,'joe','joe´s address');
INSERT INTO `patients` values (2,'moe','moe´s address');
INSERT INTO `patients` values (3,'karl','karle´s address');
INSERT INTO `patients` values (4,'lenny','lenny´s address');




CREATE TABLE `symptoms_at_arrival` (
       symptom_at_arrival varchar(30) primary key
     );

INSERT INTO `symptoms_at_arrival` values ('vomit');
INSERT INTO `symptoms_at_arrival` values ('urine');
INSERT INTO `symptoms_at_arrival` values ('dizziness');
INSERT INTO `symptoms_at_arrival` values ('convulsion');



CREATE TABLE `medical_observations`(
      id_medical_observation   INTEGER  NOT NULL PRIMARY KEY,
      id_patient               INTEGER  NOT NULL,
      symptom_at_arrival       VARCHAR(30),  
      FOREIGN KEY (id_patient)            references `patients`             (id_patient),
      FOREIGN KEY (symptom_at_arrival)    references `symptoms_at_arrival` (symptom_at_arrival ),
      CONSTRAINT `uc_Info_medical_Observation` UNIQUE (`id_medical_observation`,`id_patient`)           
    );

私の疑問は、患者に1つだけではなく、いくつかの症状がある場合に、どのようにケースをモデル化または保存するかです。その場合、症状の名前で十分です...

しかし、患者が同時にいくつかの症状を示した場合はどうなりますか?

アップデート

私はsqlfiddleを実行しました。患者が特定の症状を示しているかどうかを表す、1と0の一種のテーブルを追加することを考えていました...それは正しいでしょうか?

4

1 に答える 1

1

外部キーで接続する必要があります

|patient|        |medical_observations|              |symptoms_at_arriving|
---------        ----------------------              ----------------------
**id** 1 ----|   **id_medical_observation** |-----1  **id**
name         |-M **id_patient**             |        symptom_at_arrival
                 **symptom_at_arrival** M---|

これを試してみてください。テストするmysqlをここに持っていないで、複数の症状を同時にサポートするためにテーブルの複数の主キーを作成してください

    CREATE TABLE `symptoms_at_arriving` (
       id    integer not null primary key autoincrement,
       symptom_at_arrival varchar(30)
     );
     INSERT INTO `symptom_at_arrival' values ('vomit');
     INSERT INTO `symptom_at_arrival` values ('urine');
    INSERT INTO `symptom_at_arrival` values ('dizziness');
    INSERT INTO `symptom_at_arrival` values ('convulsion');

CREATE TABLE `medical_observations`(
      id_medical_observation   INTEGER  NOT NULL,
      id_patient               INTEGER  NOT NULL,
      symptom_at_arrival       integer not null,  
      FOREIGN KEY (id_patient)            references `patients`             (id_patient),
      FOREIGN KEY (symptom_at_arrival)    references `symptoms_at_arriving` (symptom_at_arrival,
      PRIMARY KEY (id_medical_observation, id_patient, symptom_at_arrival)

);

于 2013-03-03T01:04:46.467 に答える