由于谷歌的应用程序的发动机数据库的基础上 大表 我们知道这不是一个关系数据库,如何设计一个 数据库方案/数据模型 对于使用这种类型的数据库系统?

有帮助吗?

解决方案

设计一个大表架构是一个开放的过程,并基本上要求您想想:

  • 访问模式将使用和如何通常每个将被用于
  • 之间的关系的类型
  • 什么样的指数,你会需要
  • 写的模式将使用(为了有效地传播载)

我们向您的数据库自动denormalizes你的数据。这就是,每个指数包含(大部分)的完整复制数据,因此,每一个指数显着增加了时间采取的执行编写和储存空间的使用。

如果不是这种情况下,设计一个数据存储架构将是一个更多的工作:你会必须仔细考虑的主要关键用于每种类型,并考虑影响你的决定在当地的数据。例如,在呈现的一篇博客你可能会需要显示意见,与它一起去,所以每个评论是关键可能会开始与相关的后的关键。

与数据存储库,这不是一个大问题:查询使用将类似于"Select*from评论在哪里post_id=N"(如果你想页的评论意见,还会有一个限制条款和可能的后缀"和comment_id>last_comment_id".) 一旦你添加这样的查询,数据库将构建该指数对于你和你的读取会被神奇地快。

东西要牢记的是,每个附加指数造成了一些额外的费用:这是最好的,如果你可以使用尽可能少的访问模式成为可能,因为它会降低数量的指数再会构建,因而总的储存需要通过你的数据。

读过这个答案,我发现它有点含糊不清。也许一手设计的问题将有助于范围下来了吗?:-)

其他提示

你可以使用www.web2py.com.你构建模型并应用一次和它的工作再也可能会源码,MySQL Posgres,Oracle,MSSQL,火鸟

如再建立关于数据是如何管理在Django有很多的信息如何解决类似的问题在Django文件(例如见 在这里,, ,找到你的第一个模型').

总之你设计数据库模式作为定期对象模型,并让我们再出的所有对象关系映射。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top