可扩展的用户关系架构

时间:2017-01-04 07:01:25

标签: django database postgresql database-design database-relations

我正在建立User模型之间的关系。

以下是我采取的方法。

存在三种模式

RelationRequestRelationTypeRelationship

RelationRequest :基本上就像facebook中的朋友请求一样 ReltaionType :这可以是友谊或阻止 关系:此模型包含关系,所有ForeignKeysuser_oneuser_two并且与relationtype相关

因此模型看起来像这样(暂时忽略max_length和类似的东西)。

from userpackage import User

class RelationType(models.Model):
    """ Friendship, follow etc """
    name = models.CharField()
    slug = models.SlugField()

class RelationRequest(models.Model):
    """ A friend, follow request """ 
    user_one = models.ForeignKey(User)
    user_two = models.ForeignKey(User)
    reltaiontype = models.ForeignKey(RelationType)

class Relationship(models.Model):
    user_one = models.ForeignKey(User)
    user_two = models.ForeignKey(User)
    relation = models.ForeignKey(RelationType)

工作如下所述,

  1. user_one发起名为RelationRequest
  2. Friendship
  3. user_two接受请求并创建Relationship对象。
  4. 所以我的问题如下,

    1. 此数据库设计是否可以使用django和postgres进行扩展?

    2. 使用ForeignKeys会增加系统速度吗?

    3. 人们如何正常地完成这项工作? (行业标准)

    4. 我可以做些什么来使其可扩展?

    5. 感谢您的任何指示。

0 个答案:

没有答案