2012-12-17 96 views
2

我是一般的Hibernate和ORM的新手。建模「特定產品」數據庫

我有持有如描述,價格,條碼等產品的仿製藥性能產品實體。

現在我想要管理其他產品特定數據,例如我可以想象一個太陽鏡實體與關於鏡片,大小的信息....和一個手錶實體與其他細節有關的形狀,電池持續時間等。

哪個更好?在「非ORM」的世界,我將不得不:

  • 兩個表:手錶和太陽鏡,與重複場

  • 一個表格:「產品」與手錶和眼鏡和所有屬性字段「kindOfProduct」

如何在Hibernate/JPA上建模?

+2

如果您正在使用PostgreSQL,檢查出hstore模塊。它允許您爲單行有效地分配動態屬性。 –

回答

1

您主要有三種繼承策略可供選擇。你在問題中提到的兩個問題,再加上一個混合問題,它將常見屬性存儲到基表中,並將特定屬性存儲到專用表中。

但是隻有這些信息,給出建議是有點難,因爲對於每種策略你可以完成什麼都有規則和限制。我建議你閱讀關於這一主題的Hibernate文檔,並通過自己的實驗來啓動:

http://docs.jboss.org/hibernate/stable/orm/manual/en-US/html_single/#d0e7071

1

如何使其更具通用性並且擁有一個產品類別,並且每個產品都可以具有「產品功能」列表。

這可以通過多對多的關係進行映射,並允許您根據需要添加儘可能多的不同類型的產品和功能。

每個產品仍可能有產品類型字段,因此您知道您正在處理的產品類型。