【问题标题】:Using synced folder (dropbox, gdrive, syncthing etc) as database使用同步文件夹(dropbox、gdrive、syncthing 等)作为数据库
【发布时间】:2017-05-15 11:18:10
【问题描述】:

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

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

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

我的其他想法:

  1. 在 js(Gitlet、git-js)中使用带有某种自动提交的 git 实现?也许它也可以保存历史? :)
  2. 为每个客户端使用未同步的数据库,但仅使用同步来同步更改并为每个客户端实现某种查询?

感谢您的想法!

【问题讨论】:

    标签: javascript git sqlite dropbox electron


    【解决方案1】:

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

    协作编辑和/或冲突解决并非易事!可能您想要做的是有一个“签出”系统,当一个用户打开文件或笔记时,它对所有其他用户被标记为只读,直到该用户保存或“签入”他们的更改(但是当用户在编辑模式下打开文件后离开 PC?您是否看到即使是这个最简单的解决方案也会变得复杂?)

    如果我误解了这个问题,我们深表歉意。如果是这样,请告诉我们您想要的规格是什么。

    【讨论】:

    • 你说得对,这是一个难题,我问的问题可能很幼稚,因为没有灵丹妙药。为了将来参考,有一个数据库的github.com/attic-labs/noms 可以帮助解决这个问题。
    • 当它是一个常见的问题时,我想知道有没有这方面的文献?也许是一些处理版本控制和数据库的书?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2014-05-19
    • 2014-04-27
    相关资源
    最近更新 更多