我的工作在一个社交网站,家谱是GEDCOM兼容。我们需要确定我们是否应该使用水平或垂直数据库结构为用户配置文件。所以,我想知道是否有人能回答时使用水平的数据库结构,以及何时使用垂直数据库结构。

我找到了购物网站的一些答案,其中字段不是决定:垂直数据库结构应该被使用。但我感到困惑的是什么使用的家谱网站。我应该使用垂直或水平?

有帮助吗?

解决方案

我想你使用像MySQL,MS SQL,SQLite的时,PostgreSQL或Oracle关系数据库存储?

GEDCOM是信息交换的标准,所以你知道你会多少列有。也许规格的扩展,在未来的新特性,但它可能不会有很多新的特性。您可以轻松地扩展一个表有几个新列。

我会用一个“水平”表而不是一个实体attribyte值系统(垂直表)。垂直表系统往往是缓慢的。他们不能正确索引和混淆查询优化。

它变成一个不同的故事时,用户可以在自己的个人资料般的眸子科洛(U)R或喜爱的科洛科洛定义新的属性(U)R本身。如何灵活,你希望这些配置文件是什么?

其他提示

垂直的数据库是伟大的detawarehousing和读/只的报告。通常你一夜之间重新生成它们。他们写性能通常是非常糟糕的SELECT但更快的10-100倍。

有关使用垂直数据库一个典型的场景是,当你创建数据(每日)快照,然后对其运行查询,OLAP报表。大多数的益处来自仅请求一个相对小数目的字段的查询,例如当您选择只从大和大表字段屈指可数。这样对数百万条记录(例如计算SUM / COUNT / AVG)的查询的查询将只需要一两秒钟。

您情况似乎并没有成为一个垂直的数据库一个很好的候选人。

我同意tuinstoel,垂直表/ EAV系统不仅慢而且一段时间很复杂。有时需要写一些与这些表和开发人员只用这些方法处理,以避免复杂处理自己的API方法。

所以,如果你不需要添加更多的字段,然后用水平台停留。然而,你可以,如果你还,如果你要支持多语言能力被需要不同的表。但我奉劝还是有水平的表坚持下去。

我也在开发一个网站,涉及用户配置文件和我使用的水平表和是否会有不同语言的支持在将来需要那么我只会修改字段,其中的语言将此事。

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