2012-10-15 57 views
1

對於數據存儲層次結構以及如何建模我的應用程序,我感到非常困惑。高效查詢的數據存儲建模分層結構

我的應用程序將有用戶。

的數據將具有這種特殊的層次:

用戶將自己的比賽。

錦標賽(屬性:地理數據)

賽內用戶將添加一個或多個團隊。

內部團隊用戶將每天添加信息。

例如:

Team: Hawks 
Concept: Equipment 
String: Buy t-shirts 
Number: 11 
Number (price) : 15 

難道這樣的事情是有意義的?

class User(db.Model): 
    name = db.StringProperty(required = True) 
    pass = db.StringProperty(required = True) 
    email= db.StringProperty() 

class Tournament(db.Model): 
    name = db.StringProperty(required = True) 
    place = db.GeoPt() 
    owner = db.ReferenceProperty(User) 

class Teams(db.Model): 
    belongs_to_tournament = db.ReferenceProperty(Tournament) 
    name = db.StringProperty(required = True) 
    players = db.IntegerProperty(required = True) 

class DailyInfo(db.Model): 
    created = db.DateTimeProperty(auto_now_add = True) 
    concept = db.StringListProperty() 
    info = db.StringProperty() 
    number = db.IntegerProperty() 
    price = db.IntegerProperty() 
    team = db.ReferenceProperty(Teams) 

這個模型是正確的還是我應該添加祖先路徑?我可以查詢這個顯示每個用戶的相應信息嗎?

回答

0

在你的模型中,你沒有定義indexed=False,你需要索引每個數據庫的每個屬性?

喜歡這裏,

class Tournament(db.Model): 
    name = db.StringProperty(required = True) 
    place = db.GeoPt() 

class Teams(db.Model): 
    belongs_to_tournament = db.ReferenceProperty(Tournament, collection_name = 'tournament_teams') 
    name = db.StringProperty(required = True) 
    players = db.IntegerProperty(required = True) 
    price = db.FloatProperty(indexed=False) 
+0

謝謝,我會更新我的代碼。我終於得到通知,我應該使用除參考資產以外的父母。 – Ott0