如何将网站数据库切换到用户访问者的本地计算机

时间:2012-12-04 13:23:00

标签: mongodb couchdb

我总是问我自己如何建立用户可以下载数据库并相互分享的网站。像种子或类似的东西。

所以用户来到网站,他可以从我们的服务器或彼此下载所有数据库和网站,让它离线,即使我们的服务器关闭,他们也可以再次更新,然后他们可以互相分享。所以在他们的移动电话桌面上。

我认为skype做了类似这两个用户聊天的用户,他们同时拥有该聊天记录的副本,所以如果一个人松开了,另一个人仍然可以同步。

所以,如果有人能给我一些想法怎么做,或者也许有类似的东西让编程变得更容易......比如分享数据库(mysql,couchdb,mongodb等),然后我可以编程让它得到数据库在他们的计算机上脱机。

wikileaks是如何做到的,他们的信息遍布整个地方

2 个答案:

答案 0 :(得分:0)

我会设置一个cron将相关的MongoDB集合作为CSV或JSON文件转储到外部用户可以访问的文件中。例如,这是一个每15分钟运行一次的cron,并在“mydatabase”中导出“users”集合:

*/15 * * * * mongoexport --csv -h localhost:27017 -d mydatabase -c users -f name,email,age -o /path/to/public/users.csv

那么用户可以下载“users.csv”。当然,对于敏感信息,你不会这样做,对吗?

答案 1 :(得分:0)

离线模式对于网站来说是一个很棒的功能,但“共享”数据库通常不是最好的方法,因为您永远不知道哪个数据副本是最新的,谁做了更改可能冲突等。

一种选择是仍然使用集中式数据库,并将用户对其自己的数据所做的更改排队,以便在服务器上重播。这不是万无一失的,因为仍然可能存在数据冲突,用户可以轻松地进行更改。您需要检查是否有更新版本,最后修改过该项目等等。