0
我已經搜索了很多其他SO問題,但沒有運氣,可能是由於我使用了不正確的搜索術語。JPA:許多其他實體類使用的公共實體
我想創建一個實體(注),它可以「附加」到繼承樹中的任何其他實體。
如:
@Entity
class Note extends AbstractEntity {
String title
String message;
AbstractEntity relatedItem;
}
@Entity
class EntityOne extends AbstractEntity {
}
@Entity
class EntityTwo extends AbstractEntity {
}
我知道我可以做到以下幾點:
@Entity
class Note extends AbstractEntity {
String title
String message;
}
@Entity
class EntityOne extends AbstractEntity {
List<Note> notes;
}
@Entity
class EntityTwo extends AbstractEntity {
List<Note> notes;
}
但隨後這會導致類似的表:
Note - ID, title, message
EntityOne_Note - entityOne_ID, note_ID
EntityTwo_Note - entityTwo_ID, note_ID
,並要求我更新如果我們希望爲他們添加註釋支持,這些實體。
出於某種原因,它只是感覺更好,有一個像表:
Note - ID, title, message, relatedItem_ID, relatedItem_DTYPE
我不介意,甚至一個額外的表:
Note - ID, title, message
AbstractEntity_Note - relatedItem_ID, relatedItem_DTYPE, note_ID
想法?
我認爲這裏有一個問題。如果我理解正確,你希望在其他表格中附上註釋。然後,您想要爲所有表重用筆記。我相信,並糾正我,如果我錯了,EntityOne筆記與EntityTwo ntoes不同,這意味着它們應該存儲在不同的表中。在另一種情況下,您可以將EntityOne和EntityTwo與本例中的User表關聯(例如),但用戶無處不在,但一張表的備註與另一個表的備註不同,因爲它們具有相同的結構。 – Desorder 2014-09-30 01:06:46
我不確定他們是不同的。以Post-it爲例。所有的帖子都是一樣的,除了寫在它們上面的東西外。郵政可以卡住任何東西。這實質上就是我想要的模型 – kabal 2014-09-30 07:59:41
那麼,建模時沒有對或錯。我的用戶示例遵循您的建模思路。我相信筆記模型也會起作用。如果有更多桌子加入派對,並且需要將更多筆記附加到這些新桌子,我會擔心。您可能需要在一個表格中記錄筆記的額外信息。然後你會添加一個額外的列,其他筆記不需要打破上帝知道的規範化規則號碼。我對你的要求一無所知,我可能只是在這裏討論。 :) – Desorder 2014-09-30 09:27:09