基于共享数据库方法。由于我们使用公司ID识别租户(每家公司都有不同的员工及其任务等等),我的问题是
我们是否还需要Task表中的companyId键以便每条记录 任务可以使用companyId OR我们应该清楚地识别出来 总是使用Join?
因为如果我们在Task中使用companyId,这将不是一个正确规范化的数据库,因为Task将与公司和与公司相关的员工有关。
答案 0 :(得分:0)
这是一个意见问题。我的看法是将companyId作为主键的一部分,因此在每个表中都是必填字段。
在多租户应用程序中,我们应该确保在没有公司代码的情况下不会在表中添加数据。如果不将其作为主键或非空字段的一部分,则可以通过程序逻辑来确保它。在我看来,DB也应该确保这一点。第二个问题是表任务ID。 2家公司可能拥有相同的员工ID和相同的任务ID。 DB不应该限制它。