代码之家  ›  专栏  ›  技术社区  ›  meder omuraliev

哪种nosql数据库最适合用于存储代码/片段?

  •  3
  • meder omuraliev  · 技术社区  · 14 年前

    我想存储代码类似于 jsfiddle 存储代码。我目前使用 Postgres 但是我想知道使用NoSQL数据库是否更理想?

    现在的代码片段只有一个作者,但将来可能会有多个作者,我也希望能够还原。

    我知道有键/值数据库和面向文档的数据库。哪种特定的nosqldb适合我的需要?还是我应该继续我的博士后数据库?

    1. 我用的是django
    3 回复  |  直到 14 年前
        1
  •  1
  •   Bill Karwin    14 年前

    如果不定义要对数据执行的操作,就不能选择非关系数据策略。

    但我对您的应用程序一无所知,我的第一个建议是坚持使用PostgreSQL。将代码片段存储在文本blob中,并将有关代码的元数据(作者、日期、语言、项目等)存储在文本blob旁边的其他列中。您还可以考虑使用GIST索引来允许灵活的搜索。

    您还可以考虑apachesolr,它在技术上类似于面向文档的DBMS,尽管它通常以全文搜索引擎的形式出现。

        2
  •  1
  •   Phil Gilmore    14 年前

    我认为这是一个NoSQL数据库的想法应该是你决定的一个较小的因素。考虑一下这些事情。

    • 冗余。您可以同时在两台服务器上运行它,还是支持故障转移?(SQL Server、Interbase、Firebird)

    • 并发性。你会把这个应用程序放在网上吗?它将如何处理10个并发操作?(PostGres、MySql、Interbase、Firebird)

    • 速度。查找或发布可以接受多长时间?

    • 可嵌入性。这是桌面应用程序吗?嵌入式数据库可以让事情变得更简单。(本地数据库,如Paradox、dBase、FoxPro、Access、Interbase、Firebird或SQLite)

        3
  •  1
  •   bobince    14 年前

    但是,如果您在PostgreSQL中保留userbase信息,那么将其作为单个存储方法似乎是最简单的。同时使用SQL数据库 NoSQL增加了复杂性,使跨数据集的连接变得困难(例如,您无法通过查询来执行诸如列出用户及其最新文档之类的操作),并且无法确保两个数据集之间的一致性。

    这个麻烦你得到了什么?您需要版本控制。CouchDB将为您提供版本控制,但您是否应该将其用于UI级版本控制还存在疑问(例如,压缩数据库将丢失旧版本)。