2013-10-14 74 views
-1

我創建了一個名爲'hmdb'的數據庫,並在該數據庫中使用wamp將兩個表命名爲table1和table2。這兩個表都有ID字段作爲主鍵。我的java代碼實際上首先檢查ID是否存在於table1中,如果是的話(實際上這是爲了檢查它是否是現有的用戶,如果不是,那麼患者必須先登記自己),然後打開醫生填寫的框架患者信息與他的ID。重複主鍵的條目「ID」?

有關的問題是,當下一次醫生填寫患者信息時,它表示主鍵「ID」重複輸入。這是我的問題:是否有任何方式,對於相同的'ID'(主鍵),我們可以在數據庫中插入多個記錄。在我的項目中,很可能有一名具有其獨特ID的患者可以不止一次去看醫生,因爲醫生必須記錄他的診斷結果。在數據庫中提供詳細信息。還有一個名爲「訪問日期」的字段,所以我認爲我應該將table2的主鍵更改爲「日期」(考慮到一名患者最多隻能在一天內訪問醫生),因爲日期總是不同的,所以我可以提供相同'ID'的數據。爲此,我有一個疑問,所以我想問一個問題:如果有兩個表,我們可以爲兩個表使用不同的主鍵,或者需要有相同的主鍵?

+0

你應該有第三張桌子。如果table1有患者和患者信息,table2有醫生和醫生信息(您的數據庫名稱和表格名稱應該更具描述性),那麼您還應該有table3作爲「訪問」,或者每次訪問都有唯一ID ,並且這些字段包括患者ID,醫生ID以及關於具體訪問的更多信息。 – nhgrif

回答

1

這聽起來像你需要爲訪問創建一個主鍵。像VISIT_ID。因爲病人可以每天看一次醫生(可能不常見,但很可能),所以我會使用製造的密鑰作爲VISIT_ID。查看大多數DBMS常見的自動編號或自動編號。它們保證爲該表格生成唯一的密鑰。

在訪問表中,您還需要存儲醫生和患者的外鍵,這些外鍵分別鏈接到包含您的文檔和患者信息的表格。

祝你好運!

+0

非常感謝你,我會嘗試它,讓你確認如果工作。 – Amol

2

這裏的解決方案是有一個多對多的關係。您需要一個帶有doctor_id和patient_id映射的額外表格。

1

首先主鍵是唯一標識一行。其次,創建一個名爲patient_id的字段,並將其用作患者ID,而不是主鍵。您也可以將其作爲另一張表格的外鍵,用於保存患者記錄。而外鍵將需要成爲主鍵。

相關問題