1

データストアの階層とアプリのモデル化の方法について、本当に混乱しています。

私のアプリにはユーザーがいます。

データには、次の特定の階層があります。

ユーザーはトーナメントを所有します。

トーナメント ( プロパティ: geodata )

トーナメント内で、ユーザーは 1 つまたは複数のチームを追加します。

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 に答える