在我的应用程序中,用户(和所有数据)是按公司分组的。因此,例如,数据库中的每个客户都有一个分配给它的公司,每个产品都是这样。用户可以使用他们的公司ID登录,他们只能访问该公司的信息,但是这感觉是做事情的错误方式(所有数据都在同一个表中,只有公司ID将它们分开)。
我的两个问题是:
做这件事最好的方法是什么,或者这是最好的做法,而我只是看到了鬼魂?
发布于 2022-09-22 12:08:53
最佳选择取决于重要的标准是什么,但您的选择包括:
你现在正在做的事。
每个公司的一组不同的数据表(如在不同的数据库或模式中)
为每个公司提供不同的数据库服务器(服务器进程、虚拟服务器或物理硬件)(如果您从公司获得足够的收入来支持这一点)
我选择以上其中一个作为“最好的”将主要是基于意见,我没有足够的信息,甚至开始形成一个意见。
我所处理的一个金融服务提供商在登录表单中包括“公司名称”,这样他们就可以选择正确的数据库来查找我的登录。
你似乎在处理金钱问题,如果你把钱放错地方,人们就会生气。我会对每个公司使用不同的shemata作为最低限度。当一家公司想要备份他们的数据,或者希望他们的数据被删除时,这也会有所帮助,因为你不需要费力地从共享表中过滤数据。
发布于 2022-12-16 09:44:03
在您的场景中,我建议使用不同的数据库模式公司wise,它们在所有的公司级模式中具有相同的数据库对象结构副本。
每个定义更改都将在dbo或特定的公司智能模式中进行,将触发(数据库触发器)到所有其他公司的模式并传播更改。
因此,在同一个数据库中,您可以聚合您的产品或任何其他数据w/或w/o公司数据。
https://dba.stackexchange.com/questions/317226
复制相似问题