我对数据存储层次结构以及如何为我的应用程序建模感到困惑。
我的应用会有用户。
数据将具有此特定层次结构:
用户将拥有锦标赛。
锦标赛(属性:地理数据)
在锦标赛中,用户将添加一个或多个团队。
内部团队用户将每天添加信息。
例如:
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 :(得分: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)