我是一般的Hibernate和ORM的新手。建模「特定產品」數據庫
我有持有如描述,價格,條碼等產品的仿製藥性能產品實體。
現在我想要管理其他產品特定數據,例如我可以想象一個太陽鏡實體與關於鏡片,大小的信息....和一個手錶實體與其他細節有關的形狀,電池持續時間等。
哪個更好?在「非ORM」的世界,我將不得不:
兩個表:手錶和太陽鏡,與重複場
一個表格:「產品」與手錶和眼鏡和所有屬性字段「kindOfProduct」
如何在Hibernate/JPA上建模?
我是一般的Hibernate和ORM的新手。建模「特定產品」數據庫
我有持有如描述,價格,條碼等產品的仿製藥性能產品實體。
現在我想要管理其他產品特定數據,例如我可以想象一個太陽鏡實體與關於鏡片,大小的信息....和一個手錶實體與其他細節有關的形狀,電池持續時間等。
哪個更好?在「非ORM」的世界,我將不得不:
兩個表:手錶和太陽鏡,與重複場
一個表格:「產品」與手錶和眼鏡和所有屬性字段「kindOfProduct」
如何在Hibernate/JPA上建模?
您主要有三種繼承策略可供選擇。你在問題中提到的兩個問題,再加上一個混合問題,它將常見屬性存儲到基表中,並將特定屬性存儲到專用表中。
但是隻有這些信息,給出建議是有點難,因爲對於每種策略你可以完成什麼都有規則和限制。我建議你閱讀關於這一主題的Hibernate文檔,並通過自己的實驗來啓動:
http://docs.jboss.org/hibernate/stable/orm/manual/en-US/html_single/#d0e7071
如何使其更具通用性並且擁有一個產品類別,並且每個產品都可以具有「產品功能」列表。
這可以通過多對多的關係進行映射,並允許您根據需要添加儘可能多的不同類型的產品和功能。
每個產品仍可能有產品類型字段,因此您知道您正在處理的產品類型。
如果您正在使用PostgreSQL,檢查出hstore模塊。它允許您爲單行有效地分配動態屬性。 –