我正在用Spring框架+ Hibernate開始一個web應用程序項目。我想在應用程序中爲兩種不同類型的用戶建模:醫生和患者。他們有一些常見的屬性,如姓名,電子郵件,電話號碼等,但醫生有更具體的屬性,如合議號碼,專業,學習等。用Hibernate處理不同的用戶類型
這是一個無屬性簡化的E-R模型(Hibernate方法)。
正如你所看到的,關係會變成1比1,但其中一人將永遠是零。我也有關於使用繼承,但我從來沒有在Hibernate中使用它,所以我不知道哪個是最好的方法,爲什麼。哪種方法最簡單有效?
謝謝!
感謝您的回答@納羅斯,我不知道'@ MappedSupperclass'註釋,但我認爲這不是我所需要的,因爲我正在使用一個用戶帳戶,它將存儲在會話中每個用戶,所以我想要的是用用戶帳戶ID檢索一個「患者」或「醫生」,所以我認爲這個解決方案不適合很好嗎? –
你的圖告訴我一個'Account'由兩個可選的relatioships組成,一個'Doctor'和一個'Patient'。除此之外,如何解讀讀取這兩個屬性和分支是應用程序關心的問題,並不一定要在持久層中指定繼承的要求,除非您認爲您希望在表中對數據進行建模。 – Naros
謝謝@Naros,我明白了。因此,哪種方法更好:1-可選的1對1關係並檢查「Account」是否具有非空的Patient或Doctor或2繼承(與相應的db表)並找到Patient或每當我需要時,由'Account'標識符提供一個'Doctor'? –