1 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
您需要考慮應(yīng)用程序中確實(shí)需要強(qiáng)一致性的任何部分,然后考慮哪些實(shí)體和實(shí)體組需要參與相應(yīng)的查詢和事務(wù)(現(xiàn)在跨組事務(wù)中最多可以有 25 個(gè)),但你以這種方式使用祖先為我敲響了警鐘。
通過將實(shí)體組視為邏輯構(gòu)建數(shù)據(jù)模型的一種方式,很容易被它們所吸引(我有?。@可能會(huì)導(dǎo)致問題,最終導(dǎo)致不必要的大型實(shí)體組上的寫入爭用。
相反,最好考慮應(yīng)用程序中需要強(qiáng)一致性的點(diǎn)并圍繞它設(shè)計(jì)實(shí)體組。
在這種情況下,我可能只有一個(gè)parentCategory
屬性(類型datastore.Key
)。然后,您可以像這樣查詢樂器的子類別:
k := datastore.NewKey(c, "Category", "Musical Instruments", 0, nil) q := datastore.NewQuery("Category").Filter("parentCategory =", k)
(我對 Go 很陌生,所以以上可能是一個(gè)近似值)
每個(gè)類別中假設(shè)你有某種形式的Product
,你想查詢所有Product
內(nèi)給予A SCategory
在樹中在任何級別(例如,電視廣播員在吉他,或的Minimoog的樂器,那么你可能需要一個(gè)多值屬性(在去我猜這可能是一個(gè)[]datastore.Key
切片)代表類別樹的分支。
- 1 回答
- 0 關(guān)注
- 213 瀏覽
添加回答
舉報(bào)