【发布时间】:2012-02-22 19:51:08
【问题描述】:
所以我有,我似乎无法找到答案的常见问题。我试图找出如何构建一个在本地维护数据的数据库的“最佳实践”,然后将该数据同步到在许多客户端之间共享的远程数据库。为了使事情更清楚,这个远程数据库将有许多使用它的客户端。
例如,如果我有一个桌面应用程序,它存储了具有单个项目的待办事项列表(在 SQL 中)。然后我希望能够将该数据发送到具有所有不同客户信息的“主”副本的网络服务。 我并不担心同步问题,我只是想通过客户端表和 Web 服务表的实际架构来考虑
这是我的想法的一个例子:
客户端数据库
list
--list_client_id (primary key, auto-increment)
--list_name
list_item
--list_item_client_id (primary key, auto-increment)
--list_id
--list_item_text
基于 Web 的主数据库 (在多个客户端之间共享)
list
--list_master_id
--list_client_id (primary key, auto-increment)
--list_name
--user_id
list_item
--list_item_master_id (primary key, auto-increment)
--list_item_remote_id
--list_id
--list_item_text
--user_id
这个想法是客户端可以创建包含项目的待办事项列表,并在任何给定时间将其与网络服务同步(即,如果他们失去数据连接,并且直到稍后才能发送信息,那么什么都不会出故障)。 Web 服务会将带有客户 ID 的记录记录为额外字段。 这样,客户端可以说“用新名称更新列表编号 4”,而服务器将其理解为“用新名称更新用户 12 的列表编号 4”。
【问题讨论】:
-
很大程度上取决于具体的 RDBMS
-
它是否属于服务器故障?
-
@emaillenin 为什么这属于 ServerFault?我想弄清楚如何设计数据库中的表
-
list_item 中的 list_id 是列表中 list_client_id 的 FK?
标签: sql web-services mobile synchronization