1

对于数据存储层次结构以及如何为我的应用程序建模,我真的很困惑。

我的应用程序将有用户。

数据将具有以下特定层次结构:

用户将拥有一场锦标赛。

比赛(属性:geodata)

在锦标赛内部,用户将添加一个或多个团队。

在 Teams 中,用户将每天添加信息。

例如:

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)

这个模型做得对还是我也应该添加祖先路径?我可以查询这个以显示每个用户的相应信息吗?

4

1 回答 1

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)
于 2012-10-15T06:12:33.730 回答