gpt4 book ai didi

database - 如何构建/协调多个数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:34 24 4
gpt4 key购买 nike

想象一个拥有数十家公司的大型公司,每个公司都有自己的网站,每个网站都有自己独特的功能需求

  • 每个网站上的大部分数据都是特定于该网站的

    • 每个网站都可以编辑自己的数据
  • 一些数据将在所有网站之间共享

    • 将有一个允许编辑此数据的中央 CMS,但其他网站可以读取和使用该数据

例如假设您正在为一家拥有多家子公司的公司规划基础设施,这些子公司生产不同种类的产品,一些属于同一类别( Cereal 、食品),另一些属于完全不同的类别(书籍、仪器)。有些是营销网站,有些是 CRM,有些是在线商店

  • 有影响所有产品的监管要求列表
  • 每个公司都应管理其产品对每项要求的合规性状态
  • 当出现新需求时,有关该需求的详细信息只能输入一次

如何协调多个数据库?

编辑:根据 Bob 的建议添加了更多信息

感谢您提出极具洞察力的问题!

  • 合规数据不共享,在每个站点内孤立
  • 共享数据仅在一个企业范围的数据库中,它们主要是“[事物]类型”
  • 没有最终的实例列表,但目前会为各个站点填充 CMS 下拉菜单。
  • 共享数据的更改每年会发生几次。
  • 理想情况下,更改会在几分钟内反射(reflect)出来,但一个小时左右应该是可以接受的
  • 共享数据量非常小。
  • 所有数据库都是新的,决定哪个数据库正在等待当前调查。
  • 子系统将公开 REST api

最佳答案

以下是我见过的一些处理方法,您需要根据您的特定业务领域的详细信息考虑每种结构的含义。所有都可以工作,但如果要工作,就必须仔细设置。

一个数据库用于共享信息,一个用于每个客户用于客户特定信息。设置整个应用程序,以便您在登录时放入应用程序的第一件事是客户端,它会连接到正确的客户端。如果用户要处理多个,人们可能还必须有一种方法来更改客户端。

如果完全需要孤立,则为每个客户单独的服务器。数据库更改是通过脚本(和源代码控制)进行的,并根据需要应用于每个服务器。因此,对中央数据库的更改可能会运行一个作业,以将任何数据更改推送到其他服务器

一个数据库中的所有数据,但确保每个表都有一个 client_id,以便数据始终被客户端正确过滤。您可以按客户端设置单独的 View ,以便用户只能看到他们应该看到的客户端。这仅在每个客户端的数据基本上采用相同形式时才有效。

并且由于您处于监管环境中,我强烈建议您为每个数据库创建一个由数据库触发器更新的审计数据库(永远不要从应用程序审计,您将丢失对数据的更改)。

关于database - 如何构建/协调多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com