首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储来自不同用户群的信息的最佳方法是什么?

存储来自不同用户群的信息的最佳方法是什么?
EN

Database Administration用户
提问于 2022-09-22 08:18:04
回答 2查看 62关注 0票数 0

在我的应用程序中,用户(和所有数据)是按公司分组的。因此,例如,数据库中的每个客户都有一个分配给它的公司,每个产品都是这样。用户可以使用他们的公司ID登录,他们只能访问该公司的信息,但是这感觉是做事情的错误方式(所有数据都在同一个表中,只有公司ID将它们分开)。

我的两个问题是:

  1. 假设公司1的人生产2种产品,使用产品ID 1和2,那么公司2的人生产产品时,它就会有ID 3,除非我做了一个(我认为是不必要的)查询来计算产品的数量并添加1。
  2. 我只是不觉得把所有的数据如此紧密地放在一起是不安全的,如果我们有100+公司和他们的100+产品和客户在一起的话,这会导致数据库的巨大膨胀。

做这件事最好的方法是什么,或者这是最好的做法,而我只是看到了鬼魂?

EN

回答 2

Database Administration用户

发布于 2022-09-22 12:08:53

最佳选择取决于重要的标准是什么,但您的选择包括:

你现在正在做的事。

每个公司的一组不同的数据表(如在不同的数据库或模式中)

为每个公司提供不同的数据库服务器(服务器进程、虚拟服务器或物理硬件)(如果您从公司获得足够的收入来支持这一点)

我选择以上其中一个作为“最好的”将主要是基于意见,我没有足够的信息,甚至开始形成一个意见。

我所处理的一个金融服务提供商在登录表单中包括“公司名称”,这样他们就可以选择正确的数据库来查找我的登录。

你似乎在处理金钱问题,如果你把钱放错地方,人们就会生气。我会对每个公司使用不同的shemata作为最低限度。当一家公司想要备份他们的数据,或者希望他们的数据被删除时,这也会有所帮助,因为你不需要费力地从共享表中过滤数据。

票数 1
EN

Database Administration用户

发布于 2022-12-16 09:44:03

在您的场景中,我建议使用不同的数据库模式公司wise,它们在所有的公司级模式中具有相同的数据库对象结构副本。

每个定义更改都将在dbo或特定的公司智能模式中进行,将触发(数据库触发器)到所有其他公司的模式并传播更改。

因此,在同一个数据库中,您可以聚合您的产品或任何其他数据w/或w/o公司数据。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/317226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档