2014-07-16 75 views
0

在我開發的應用程序中,我有兩個緊密相關的實體(EntityA,EntityB)。 EntityB永遠不會在沒有EntityA的情況下訪問,但EntityA通常在沒有實體B的情況下訪問。另外,EntityB可以非常大,而EntityA的大小適中。Google App Engine:兩個緊密相關的實體是否應該組合?

將EntityB添加到EntityA(作爲結構化屬性/複製字段)是否存在缺陷?從而增加EntityA的大小,並消除EntityB。或者我應該只使用EntityA中的關鍵屬性來引用EntityB,並且每當需要EntityB時使用額外的get?

回答

1

如果每個實體A最多隻有一個實體B,那麼可以使實體B成爲實體A的子體。這可以很容易地檢索它 - 您甚至不必在父級引用它的密鑰實體。

如果您經常需要一個實體而沒有另一個實體,則沒有理由將兩個實體組合在一起。加載比您需要的數據更少的性能損失。

+0

是的,每個EntityA只有一個EntityB。所以你建議使用祖先查詢來獲取EntityB?沒有比通過關鍵獲得更慢? – PaintingInAir

+1

如果您只有一個實體B,則不需要祖先查詢。當您創建實體B時,您可以給它一個id = 1。現在,您可以輕鬆構造一個密鑰,以使用其專利實體A的ID進行檢索。 –

相關問題