FlockDB提供了一种非常好的方法来建模社交图:系统中只有两个实体,即用户和友谊。其中,用户代表图的顶点,友谊代表两个用户之间的边。如下所示:
用户(id,first_name,last_name,birth_data,registration_timestamp)
友谊(id,user1_id,user2_id,depth,其他友谊params .)
这种方法有许多优点。
relationship
我的问题是如何用Google AppEngine提供的DataStore来实现这一点。这是我的第一次尝试,但我不明白如何才能真正为友谊实体分配钥匙。
class User(db.Model):
name = db.StringProperty()
age = db.IntegerProperty()
registeration_ts = db.DateTimeProperty(auto_now_add=True)
class FriendShip(db.Model):
user1 = db.Key() // key to some user in user1
user2 = db.Key() // key to some user in user2
creation_ts = db.DateTimeProperty(auto_now_add=True)
updated_ts = db.DateTimeProperty(auto_now_add=True)发布于 2011-04-14 15:22:03
一种方法是像这样建模:
class User(db.Model):
name = db.StringProperty()
friends = db.SelfReferenceProperty(collection_name="subscribers")这将是一个表示用户和朋友的简单模型。但我认为它会有两个缺点:
发布于 2011-09-05 03:03:49
不要使用db.Key() (它是一个值,而不是属性类),而是使用db.ReferenceProperty(User)。
https://stackoverflow.com/questions/5665342
复制相似问题