我怀疑如何处理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。
答案 0 :(得分:0)
将用户外键放在所有数据仅属于该用户的表中。然后只需在该表上查询和过滤用户,拥有权限查找用户外键,依此类推。