当前位置: 首页 > 知识库问答 >
问题:

将多个区域设置数据库远程同步到一个

邓德惠
2023-03-14

我需要在Raspberry PI4上创建一个本地Web服务器的系统,运行用于API调用、websockets等的laravel。每个RPI将安装在多个客户的地方。

对于这个项目,我希望有能力将数据库保存/同步到远程服务器(当本地系统连接到internet时)。

多个区域设置数据库=>一个基于cutomers的远程数据库

问题是,如何同步数据库,正确地识别每个客户的数据,并将它们呈现在一个相互关联的远程仪表板中。

我的第一个想法是在每个表上设置一个customer_id或一个team_id,但这似乎很脏。

另一种方法是在远程服务器上创建多个数据库用于同步,并创建一个额外的数据库用于设置客户ID和数据库连接信息...

已经有人做过类似的实验了?有没有一个确定和干净的方法来做这件事?

共有1个答案

谭思博
2023-03-14

你指的是本地,但我想你指的是本地。

根据您所说的,您在中心站点有两个选择。中央数据库可以将来自远程数据库的信息存储到一个表中,并添加一列来指示信息来自哪个远程站点,也可以为每个远程站点设置一个单独的表(或数据库)。

您希望如何使用这些数据?

如果您一次只想处理来自一个远程站点的数据,这并不重要--在这两种情况下,您都需要确定要处理的数据,并构建SQL语句,以便根据适当的列进行筛选,或者将其定向到适当的表。

如果您想同时处理来自多个远程站点的数据,那么使用不同的表需要使用联合查询提取数据,而这不太可能很好地扩展。在这种情况下,您最好使用一个列,用它引用的远程站点标记每个记录。

我建议您考虑使用UUID作为主键--在您的场景中,键冲突可能不是一个问题,但如果发生了冲突,那么尝试追溯性地修改设计可能会有相当大的工作量。

您还询问了如何同步数据库。这将取决于站点和软件功能之间的连接类型,但通常情况下,您会让本地系统定期与中心站点的webservice进行对话。假设您正在收集传感器数据或类似的数据,则对话如下所示:

客户端-你好服务器,我的上一个传感器读数的时间戳是xxxx服务器-你好客户端,[从yyyy发送传感器读数我不需要任何数据]

如果您愿意,您可以包括签名检查(例如,一个时间段内记录的MD5和),但这可能是矫枉过正的。

 类似资料:
  • 本文向大家介绍yii2.0数据库迁移教程【多个数据库同时同步数据】,包括了yii2.0数据库迁移教程【多个数据库同时同步数据】的使用技巧和注意事项,需要的朋友参考一下 本文讲述了yii2.0数据库迁移的方法。分享给大家供大家参考,具体如下: 创建迁移 使用如下命令来创建一个新的迁移: 必填参数 name 的作用是对新的迁移做一个简要的描述。例如,如果这个迁移是用来往多个数据库同一张表  ( 假设每

  • 问题内容: 所有,我必须创建一个具有基本架构的数据库。该数据库将很大(超过100GB),并将用作数据仓库。现在,该数据库的创建当前正在通过C#代码“一次命中”执行。从许多不同的来源中提取数据。由于数据量巨大,这种创建引起了一些问题。已经决定,与其一口气创建一个数据库,不如一次创建一个数据库。到 创建几个包含核心数据表的较小数据库。 将较小的数据库合并为一个较大的数据库。 建立架构/添加相关约束。

  • “同步到数据库”功能让你比对物理模型和现有数据库或模式,显示它们之间结构的差异,并提供同步模型的结构到目标连接。 Navicat 提供一个向导,一步一步指导你完成任务: 选择“文件”->“同步到数据库”。 选择源数据库、模式,然后从现有的连接中选择目标连接、数据库、模式。 点击“选项”并选择比对或高级选项。 点击“比对”以显示源对象和目标对象之间的差异。 选择要同步的对象。 点击“部署”以生成一组

  • “同步到数据库”功能让你比对模型和现有数据库或模式,显示它们之间结构的差异,并提供同步模型的结构到目标连接。 Navicat 提供一个向导,一步一步指导你完成任务: 选择“文件”->“同步到数据库”。 选择源数据库、模式,然后从现有的连接中选择目标连接、数据库、模式。 点击“选项”并选择比对或高级选项。 点击“比对”以显示源对象和目标对象之间的差异。 选择要同步的对象。 点击“部署”以生成一组脚本

  • “同步到数据库”功能让你比对物理模型和现有数据库或模式,显示它们之间结构的差异,并提供同步模型的结构到目标连接。 Navicat 提供一个向导,一步一步指导你完成任务: 选择“文件”->“同步到数据库”。 选择源数据库、模式,然后从现有的连接中选择目标连接、数据库、模式。 点击“选项”并选择比对或高级选项。 点击“比对”以显示源对象和目标对象之间的差异。 选择要同步的对象。 点击“部署”以生成一组

  • 问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -