【问题标题】:Flexible way/database to keep a very large amount of data灵活的方式/数据库来保存大量数据
【发布时间】:2012-06-17 08:17:45
【问题描述】:

我有一个非常大的 SQLite 数据库 (~10MB)。目前我在本地主机上使用这个数据库和一个自定义的 PHP 界面,但我也在寻找不同的存储和不同的界面。里面的数据变化不大,所以优先读取数据。

我对当前的设置不是很满意,因为数据库架构是“自定义”的,我不想在将来更改它(因为也许我会找到“更好的方法”)。我认为这不是标准的,将来可能会困扰我。

我的问题是:什么是一种非常灵活的存储数据的好方法?我正在寻找一种标准的数据存储,我只需一次即可填充。 SQLite 仍然是最佳选择吗?

这个数据库里面有什么:

我将大致描述一下结构。

  • 表 A 充满了问题;
  • 表 B 充满了答案。每个问题都有不同的答案;
  • C 中的表格充满了关于问题 Y 的答案 X 的数据。每个答案都有许多不同的可用元数据。

什么是极其重要的:

  • 快速查询;
  • 通过 *NIX 实现可移植性,无需安装大量软件;
  • 不太复杂的查询,我还是需要一些连接;
  • 不必每两个月更改一次架构。

什么是重要的:

  • 频繁更新(我每年更新一次数据库,或多或少)。

我想过使用文件和文件夹,但我不确定这是不是最好的选择。

【问题讨论】:

  • 键值存储? Redis - redis.io 看看这个。
  • 试试couchdb 或任何其他文档存储。
  • 在我看来就像一个基本的 1::N 模型。没有涉及问题或答案的版本?没有斑点?没有问题的类别/标签?没有评分/答案排名?

标签: database sqlite database-design data-structures


【解决方案1】:

您的问题可以很好地建模为图问题。像 Orient DB 或 Neo4j 这样的基于图形的数据库呢?在 Graph 的一部分中可以有 2 个节点:一个代表问题 A,一个代表答案 B,​​连接它们的边可以包含您的表 c 数据或元数据。每个答案节点可以有来自多个问题节点的多个传入边,并且单个问题可以有多个答案。您不需要任何架构,我提到的数据库是 NoSQL 数据库。搜索将非常快,因为它们甚至可以与 Lucene 搜索引擎集成以进行全文搜索,我相信既然您有问答,所以您需要全文搜索。

这是一个例子:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多