2012-12-18 30 views
0

我需要创建一个类似于Google日历的服务(仅限基本功能)才能使用iCalendar格式查看和编辑/删除约会。 开始之前我想问你,哪种数据库最适合存储这类信息。它必须是一个可扩展的解决方案。创建像Google日历这样的服务。什么数据库?

非常感谢你,如果你能帮助我。

+1

个人而言,我会去关系数据库,因为日历和约会有一个固有的结构 - 但问题是非常主观的 –

+0

这个问题是非常开放的。如果你有一个你想优化的特定数据库特性,那将是一个更好的查询方式。如果没有,那么任何数据库都会做,选择你喜欢的任何东西。 –

+0

谢谢,我只是想知道如果有人尝试这些新的数据库系统,除了从MySQL实现这一点,并有一些经验:)。性能非常重要。 – zer02

回答

1

您可以安全地使用mysql,也许可以使用PDO。如果需要,这种方式永远可以在未来移动到另一个数据库。但是,对于这样的任务,mySQL应该足够一生了。

+0

谢谢,PDO是一个有趣的想法。我会研究这一点。 – zer02

1

如果你想要一个可伸缩的数据库,你可以使用NoSQL数据库(例如MongoDB,CouchDB为例)。这种数据库是可扩展的。

但是对于像“基本功能”一样的“谷歌日历”,经典的SQL数据库(如MySQL的例子)也会足够大。即使你有很多的用户。

所以NoSQL或SQL数据库很容易使用。所以最好使用你最喜欢的数据库。

1

鉴于你的问题的范围很广,你可以使用任何关系数据库,如:

  1. MySQL的
  2. Postgree
  3. SQL服务器
  4. 甲骨文

还是一个的NoSQL数据库如:

  1. MongoDB的
  2. 乌鸦DB

你的选择依赖于知识和经验,这些数据库。个人而言,我会用MySQL,因为它稳定,开源,有很多关于它的资源(包括优化技巧),它是“免费的”。

0

询问可伸缩性是错误的方法。如果您的服务增长,您根本无法知道您将遇到哪种可伸缩性问题。

您可以在几乎任何数据库解决方案中缩放一定数量的数据。但最终你将不得不采取完全不同的方法解决问题,因为原始解决方案无法进一步扩展。

例如,在高性能环境中的MySQL用于安装了足够内存的服务器上,以至于某个时间点的整个数据集都保存在RAM中,而且硬盘仅写入整个持续时间。硬盘,顺便说一句,是一个非常快速的SSD阵列。

但即使这些泰坦服务器可能会变得太小,必须应用“分片”和“分区”等策略将数据集分割到多个数据库服务器上。主从复制可能在读写时遇到困难。

如果你开始了,你的基本问题应该是:我想用什么数据结构来向至少一个用户提供服务?任何数据库都可以支持这一点,但有些可能更易于使用,具体取决于数据结构和您对它们的了解。

如果您没有服务,则没有用户,缩放需求也会减少。

+0

这是真的,但也许有更优雅的方式来保存日历和约会。 – zer02

相关问题