FlockDB提供了一種非常好的社交圖建模方法:系統中只有兩個實體,User和Friendship。其中用戶表示圖形的頂點,友誼表示兩個用戶之間的邊緣。就像這樣:如何在Google App Engine中爲像flockDB這樣的社交圖建模
用戶(ID,名字,姓氏,birth_data,registration_timestamp)
友誼(ID,user1_id,user2_id,深入,其他友情參數...)
有許多優點這種做法
- 您可以像朋友,親密的朋友的友誼指定參數,可以在一個關係
- 你可以選擇你的友誼是否定向與否。
我的問題是如何使用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)