数据库同步是指在两个或多个单独数据库中,如果其中一个数据库内容有所改变,最新数据则同步至所有数据库。
这可能是个重要的问题。无论你的数据库解决方案简单或是复杂,你都需要考虑五个关键问题:
- 需要保持同步的数据库结构的相似程度如何? 如果它们完全相同,那么你的工作则轻松了很多;如果它们相似度较低,同步则较为困难和复杂。
- 数据库每隔多久需要同步一次?
- 结束最后一次同步之后,如果你的两个(或多个)数据库中的相同数据有所改动,你将如何应对这种情况?方法有很多,有的比较简单,有的非常复杂。
- 你愿意在开发同步系统方面投入多少精力和/或财力?
- 你想要在每个同步阶段投入多少精力?
在我们开始研究各种常用的同步方法之前,先来看看两个常见情形:
- 杰夫(Jeff)是唯一一个使用自己数据库的人。杰夫通常在台式电脑上使用自己的 FileMaker 数据库,但外出时偶尔将数据库存放在便携式电脑上。.
- 卡罗尔(Carol)管理一支销售团队,他们使用 FileMaker Go 将客户数据拷贝到 iPad 上随身携带。旅途中,他们通常无法接入互联网,只能对各自的数据库内容进行更新,然后再对大家常用的数据进行更新(比如从销售额中降低库存水平)。
这是截然相反的两种情形,然而在某些方面也存在共同点,需要采用截然不同的方法加以解决。
常用方法
1. 使用托管系统 – 这并不是真正的数据同步,而是比数据同步更先进的技术。如果需要使用数据库的所有人都位于同一个网络上,或者都可以通过互联网访问数据库服务器,那么你就可以使用 FileMaker 的数据共享功能(通过即时网络发布或定制网络发布功能实现 FileMaker 网络共享或网络发布)。
优点
- 实时数据更新
- 无需任何复杂或昂贵的同步设备,因为所有人都在使用同一个数据库。
缺点
- 只有当你的客户端计算机可以直接访问数据库服务器时,才能使用这一功能。
2. 更改仅限于数据库的一个副本 – 正如上述方法所述,这不是真正的同步。与上述方法不同的是,这个方法局限性最高,意味着你需要在数据库副本中选择一个永远作为“主要”副本,所有其他副本只能以只读模式使用。该方法局限性是最高的,你会发现,如果你只是偶尔需要使用脱机数据库,这个方法将比创建一个同步系统实惠、方便得多。
优点
- 这是所有方法中最简单的一个。
缺点
- 脱机数据库不能用于数据输入或更新 。
3. 使用 FileMaker 的功能在导入数据的同时更新现有记录中的数据 – 该功能也不是真正的数据同步,但它是数据同步的第一步。当你在导入的过程中更新现有数据时,你就是在从导出表单中替换导入表单中的数据,从而获得相同的记录。当你可以确定来自相同记录的数据在完成最后一次同步后只在一个表中进行了修改,这个方法将非常有用。
优点
- 这和导入同样简单。
缺点
- 当某个指定记录在你数据库的两个副本中均被更改时,这个方法缺乏“优胜者”的概念。被导入的记录数据将永远“优胜于”即将接受导入内容的现有记录中的数据。进一步了解这一方法,请查看第 8 部分 Knowledge Base 答复 5551。
4. 使用专门为数据库同步设计的第三方工具 – 借助工具可以大大简化全功能同步系统的使用。单击此处搜索第三方工具。
优点
- 实现多个文档/表单/数据库副本之间真正的数据同步。
- 可提前完成许多复杂的工作。
缺点
- 购买第三方同步工具并为之获得许可需要额外费用。
- 按照该工具的要求,该系统使用者可能需要具备开发人员的技术水平。
进一步了解第三方工具,请访问我们的 FileMaker 定制解决方案页面。
5. 创建自己的同步系统 – FileMaker Pro 具备创建强大同步系统的全部所需工具。通过合并脚本、脚本触发器、导入和计算,你可以使用数据库解决方案的优化方式自动同步多个文档副本。也就是说,创建自己的同步系统在技术上很复杂,理解起来(通常)也很复杂。这是一项高水平 FileMaker 开发任务,需要对脚本、计算和数据结构的概念有深入的了解。非专家级开发人员应当请 FileMaker 专业顾问提供帮助,获得近乎最简单的数据库解决方案。
优点
- 可完整优化自定义系统,以适应你的数据库解决方案和工作环境。
缺点
- 这很可能是使用最为复杂的方法,要求使用者拥有专业开发人员的技术水平。
- 这也可能是最昂贵的方法。根据你的数据库解决方案的复杂程度,可能会需要大量的时间(如果你做开发工作)或花销(如果你雇佣开发人员来做这项工作)。