2017-04-27 88 views
-1

我是Oracle數據庫的初學者。如何基於關係模式創建Oracle數據庫

我有一個關係圖,我想在Oracle中創建表,但我不知道如何在它們和主鍵之間建立關係。我的老師說,「病人」和「醫生」這些表格必須繼承「人員」表中的所有屬性。

此外,「處方」表需要繼承「患者」和「醫生」表中的屬性。所以與「處方」表。

這是圖

diagram

+0

你到目前爲止嘗試過什麼?我們不會爲你做你的功課。 – NaeiKinDus

+0

SO不是一個「如何做」或教程網站。從某些教程或[oracle文檔](http://docs.oracle.com/database/122/SQLRF/CREATE-TABLE.htm#SQLRF01402)開始,嘗試一些內容,然後如果您的代碼存在問題,隨時張貼在這裏,並尋求幫助。 – Aleksej

+0

我試圖用Oracle對象瀏覽器在Oracle 11g中創建表,我不知道如何使父母和孩子之間的關係(像「孩子」,像partents和「醫生」,像孩子)。 –

回答

0

你需要的一切,你可以在此頁面找到:official oracle docs

節創建簡單的表格和屬性的繼承「並行創建表」的基本語法。

0
CREATE TABLE empleat(

    emp_no number(6,0) CONSTRAINT fk_empleat PRIMARY KEY, 

    nom varchar(20) CONSTRAINT nn_empleat_nom NOT NULL, 

    cognom varchar(20), 
    departament number(2,0) CONSTRAINT nn_empleat_dept NOT NULL 
); 


CREATE TABLE departament(
dept_no number(2,0) CONSTRAINT fk_departament_dept_no PRIMARY KEY, 


nom varchar(20) CONSTRAINT nn_departament_nom NOT NULL, 

localitat varchar2(30), 

lider number(6,0) CONSTRAINT nn_departament NOT NULL 
); 
0

不知道爲什麼醫生就不會出生日期或性別,所以你可以只合並peoplepatients

CREATE TABLE people (
    id   NUMBER  CONSTRAINT people__id__pk PRIMARY KEY, 
    first_name VARCHAR2(250) CONSTRAINT people__first_name__nn NOT NULL, 
    last_name  VARCHAR2(250) CONSTRAINT people__last_name__nn NOT NULL, 
    phone   VARCHAR2(20), 
    date_of_birth DATE   CONSTRAINT people__date_of_birth__nn NOT NULL, 
    gender  CHAR(1)  CONSTRAINT people__gender__chk CHECK (gender IN ('M', 'F', 'X', 'Y')), 
    doctor  NUMBER  CONSTRAINT people__doctor__fk REFERENCES doctor (id) 
); 

CREATE TABLE doctor (
    id    NUMBER  CONSTRAINT doctor__id__pk PRIMARY KEY 
           CONSTRAINT doctor__id__fk REFERENCES people (id), 
    specialization VARCHAR2(250) 
); 

我的老師說,表「患者「和」醫生「必須繼承」人員「表中的所有屬性。

如果這一點,他們意味着doctors表必須具有people表的所有列,然後這打破正常化的想法。如果您需要這樣做,那麼它應該作爲VIEW實施,而不是複製數據。

CREATE VIEW doctor_details IS 
    SELECT p.*, d.sepcialization 
    FROM people p 
     INNER JOIN 
     doctors d 
     ON (p.id = d.id); 
+0

我的老師想要做你在第二次通信中說的話。 '醫生'餐桌必須包含'人'餐桌上的所有列,並且'病人'上有同樣的事情。這是我直到現在才明白的。非常感謝你! –

+0

「不確定醫生爲什麼沒有出生日期或性別」,因爲這些屬性與DOCTOR實體無關(除非我們正在編寫人力資源申請),但他們確實與醫學治療極其相關,因此屬於正確的給患者實體 – APC