我正在尝试使用烧瓶和谷歌应用引擎制作一个Facebook类型的社交网站(不是Facebook应用程序)。我目前正在研究如何在数据存储区中存储朋友。
我希望它有点像facebook,因为用户会请求成为另一个人的朋友,一旦被接受,他们就可以看到对方的帖子。到目前为止,似乎它会像这样存储给我:
class Friendship(db.Model):
user1 = db.ReferenceProperty(User)
user2 = db.ReferenceProperty(User)
request_accepted = db.BooleanProperty()
但是我看到了this post on stackoverflow以及google's datastore documentation上的多对多示例,让我感到困惑。我之前只使用过像mysql这样的关系数据库,所以我真的不知道它们是怎么回事,但看起来很重要。
如果有人知道我该怎么做,请让我知道 - 非常感谢。如果您需要我的完整models.py
源代码,请与我们联系。
提前致谢!
答案 0 :(得分:0)
我认为你所尝试的东西没什么好混淆的。在您的模型中,友谊类具有两个类型用户属性的引用。
freindship=FriendShip()
friendship.user1=#assign a key of user or user object
friendship.user2=#assign a key of user or user object
friendhsip.put()
这里user1和user2将引用一些用户对象。并且还要为参考属性添加集合名称以避免混淆。 要了解更多信息,请查看modeling in appengine
答案 1 :(得分:0)
我建议您将userid也存储在友谊模型中,因为这样可以在相应地过滤数据时有用...否则您需要抓取您的数据存储区以找到共同的朋友...:D
和“当”实体也按排序顺序显示朋友...... :)
class Friendship(db.Model):
user1 = db.ReferenceProperty(User)
user2 = db.ReferenceProperty(User)
user1id = db.StringProperty()
user2id = db.StringProperty()
request_accepted = db.BooleanProperty()
when = db.DateTimeProperty()