2011-10-24 52 views
2

我正在設計一個醫生辦公室和藥房的數據庫模型,並要求存儲關於客戶的數據患者,客戶是在藥房買的人,看到醫生的患者,客戶可以同時耐心,反之亦然。如何管理這種情況?如果我爲每一個實體創建一個實體,那麼就有可能在兩個表上都有一個人。有什麼建議麼?如何在MySQL中實現具有共同屬性的兩個實體?

回答

2

兩種方法:

  1. 一個表稱爲個人表,有文件「is_customer」和「is_patient」那可真/假

  2. 三表,一個爲人們存儲所有的他們的相關數據(姓名,地址,電話號碼等)以一個唯一的ID,一個病人表,這個表只是一個唯一的ID表和參考人表,以及一個表,只是一個唯一的ID表並引用人物表。

+0

選項1,但我不知道指標列甚至是必要的 - 這些值可以基於相關表中的person_id/etc的存在而創建。 –

+0

是的,這就是選項2的全部內容,創建引用第一個的相關表:)。 – Whetstone

2

如果客戶和患者數據是完全一樣的,你可以有個人信息的單個表和type列既可以是位或整數。此type列會告訴您記錄是針對患者還是客戶。我沒有看到有關患者也是客戶的重複記錄,但如果您想避免這種情況,您必須創建一個鏈接表。喜歡的東西:

person 
(id, name, address, ...) 

而且

person_type(person_id, type_id) 

一個人這兩個客戶和患者將在此表2項;每個type(客戶/患者)一個。

相關問題