使用同步文件夹(dropbox,gdrive,syncthing等)作为数据库

时间:2016-12-31 12:39:24

标签: javascript git sqlite dropbox electron

我想在electronjs中编写笔记应用程序,它将完全基于文件,并且将与服务无关(例如,不会使用dropbox api),但它将能够同步。

我不能简单地同步sqlite db,因为当更多人同时编辑它时它会中断。

是否有任何数据库解决方案可以开箱即用(并使用electronjs?)。什么是好的方法?

我的其他想法:

  1. 在js(Gitlet,git-js)中使用某种自动提交的git实现?也许它还会挽救历史? :)
  2. 对每个客户端使用不同步的数据库,但仅使用同步来同步更改并为每个客户端实现某种查询?
  3. 感谢你的想法!

1 个答案:

答案 0 :(得分:0)

没有没有数据库解决方案可以处理多个人同时“开箱即用”编辑内容,因为没有数据库可以看到你的应用程序并意识到两个人正在忙于相同的数据,也没有神奇地意识到如何解决冲突。

协作编辑和/或解决冲突并非易事!您可能想要做的是拥有一个“结账”系统,当一个用户打开文件或注释时,它会被标记为只读给所有其他用户,直到该用户保存或“检入”他们的更改(但随后会发生什么)一个用户在编辑模式下打开文件时从PC上徘徊?你看到这个最简单的解决方案会变得多么复杂吗?)

如果我误解了这个问题,请道歉。如果是这样,请告诉我们您所需的规格。