基于saas的发票应用程序

时间:2016-04-26 18:13:30

标签: django postgresql django-models multi-tenant saas

我怀疑如何处理Django中的多租户问题以及以下问题。我正在制作发票应用程序,每个用户独立地添加到产品/客户(等等)模型,然后使用它们来创建发票和库存。

现在,在这种情况下,请注意以下用例:

USER A
        Product (Unique on: Key)
         Key    Name        Price   Discount    Tax Total
         Pan    Panasonic   xxxxx   xxxxx   xxxxx   xxxxx
         Sam    Samsung     xxxxx   xxxxx   xxxxx   xxxxx
         Tes    Tesla       xxxxx   xxxxx   xxxxx   xxxxx
         App    Apple       xxxxx   xxxxx   xxxxx   xxxxx

        Cusomer (Unique on: Key)
         Key    Name    Address VAT No  Pending Amount
          c1    Cust1   abcd    1234    xxxxx
          c2    Cust2   xyz     0000    xxxxx
          c3    Cust3   pqr     1111    xxxxx

USER B 
        Product (Unique on: Key)
         Key    Name       Price    Discount    Tax Total
         Pan    Panteen    xxxxx    xxxxx   xxxxx   xxxxx
         Sam    Samsung     pppp    xxxxx   ccccc   dddd
         Tes    Tesla      xxxxx    xxxxx   xxxxx   xxxxx
         App    Apple      xxxxx    aaaa    xxxxx   bbbb

        Cusomer (Unique on: Key)
         Key    Name    Address VAT No  Pending Amount
          a1    Cust1   abcd    1234    xxxxx
          a2    Cust2   xyz     0000    xxxxx
          a3    Cust3   pqr     1111    xxxxx

每个用户独立创建这些表的行。例如,每个用户可以使用相同的产品密钥来命名不同的产品,他们也可以拥有不同价格/折扣的相同产品等。与客户相同。

并且用户不应该访问表的任何部分,期望他们创建的部分(因此用户A不会,错误地触摸用户B的数据)。

现在,我的数据库方案应该是什么?我该怎么办?

此外,我有一个产品slug和一个客户slug字段,它使用户访问他们各自的产品/客户页面(他们可以查看和编辑产品/客户数据)的独特字段(即密钥)。

我打算在部署阶段使用postgresql。

1 个答案:

答案 0 :(得分:0)

将用户外键放在所有数据仅属于该用户的表中。然后只需在该表上查询和过滤用户,拥有权限查找用户外键,依此类推。