2011-08-03 34 views
3

我正在寻找一个用于小型项目的数据库系统。我理想中的数据库将具有以下特征/要求:适合轻量级架构灵活性问题的良好数据库系统

  • 灵活的模式:我有可能缺少的属性的元组,和其他人可能还没有被整个数据库
  • 便捷的前共享的特殊属性 - 结束:此数据库将成为非技术型用户输入数据,询问查询等(最可能基于Web的前端)的一部分。所以适当的插件与PHP将是方便的。
  • 查询表达性:我有一个相反的规模问题 - 数据库永远不会变得非常大(每年想象一个类似50个新元组的东西),所以我不需要很花哨的东西。我只想说承认相当复杂的查询(这就是为什么电子表格不会做)

我看着平时的NoSQL系统,如MongoDB的和CouchDB的一个系统,而他们肯定可以工作,他们似乎像我的相对小的问题矫枉过正。我想知道是否有更简单的东西可以使用。

+0

SQL已经被用来解决最适合自己的“灵活模式”的定义很长一段时间,特别是在你的尺度问题。是什么让你觉得你需要另一种技术?是否因为非技术型用户需要经常更改模式,因此您需要隐式处理更改? – maverickwoo

+0

架构肯定会频繁更改,并且大多数记录会丢失很多条目。如果我只是建立一个常规的mysql表,我不得不经常在模式更改时运行ALTER TABLE命令,对吗? – Suresh

+1

如果将条目划分为“普通”和“罕见”,则不必更改任何表格,然后将前者存储在矩阵形式的表格中,将后者存储在列表形式的表格中。但是为了执行查询,您需要将列表中的条目转移(但您可以自动转动)。然而,除了使用SQL进行查询的能力(以及与成熟的SQL工具支持相关的好处)之外,我不清楚使用这种方法会带来哪些其他好处。所以如果非SQL查询对你来说很好,那么你命名的新系统确实很好。 – maverickwoo

回答

1

我是SQLite的粉丝。 SQLite支持像MySQL这样的DBMS的许多基本功能,例如使用标准SQL进行查询,但作为包含在大多数程序中的单个dll运行。数据库本身作为一个单独的文件存储,并且你看起来想要放入的数据量可能会非常小。 SQLite可以和PHP一起工作,你可以找到一个入门教程Here.享受!

+0

我没有想到要检出SQLite。感谢这个想法。我也会考虑这一点。我的担心是可能缺乏模式灵活性,但我会深入研究这一点。 – Suresh

1

从您的描述来看,它似乎是一个文档商店或一个专栏商店会适合你。由于大多数nosql变体都是针对“大数据”的,因此大多数nosql选项可能会对你想要做的事情过度杀伤。

现在你的数据集有多大?如果它相当小(几十个演出的问题),那么你最好用一个内存数据库来服务。这将有助于查询执行,并且您只需要一个节点/服务器。

也就是说,像mysql这样的东西可能没问题。既然你提到的只是少量的数据,那简直就是我的意图。

然后,您可以使用开源工具(如Pentaho或Jaspersoft)通过报告提取数据。它们非常易于安装和使用。

感谢,

杰夫

+0

db是微不足道的。我们正在谈论MB,甚至没有GB。什么是良好的内存数据库系统? – Suresh

+0

Mysql确实有表格的内存引擎。唯一的问题是,当你杀死系统时你会失去它。您也可以将数据加载到innodb表中,然后在启动时将数据加载到内存中。长话短说,只有兆字节,除非你在数百分之一毫秒,那么你几乎可以确定任何数据库。 – JeffIB