数据库表设计优化了大量数据

时间:2010-01-21 07:42:33

标签: sql database performance database-design optimization

如果我要组织澳大利亚和南部大陆的旅游和酒店数据 美国,你能告诉我一个最好的方法吗?就像我组织表格一样:

  • 国家
  • 状态
  • 邮编
  • 城市
  • 目的地
  • lnkhotelszipcodes(如果酒店存在于多个地方)
  • lnkhotelscities

它将以搜索为导向,包括国家,州,邮政编码,城市,以及酒店和旅游目的地的设施或功能

3 个答案:

答案 0 :(得分:2)

简而言之 - 为一个实体创建一个表。

我认为您应该创建一个ERD图(http://en.wikipedia.org/wiki/Entity-relationship_model),并按以下方式将其映射到表: 一个实体 - 一个表。因此,您将获得第3版正常形式的数据。你应该这样做,直到遇到一些性能问题。如果他们会认真的 - 开始正常化。在这种情况下,我不认为构建不规范化的东西是合理的。

答案 1 :(得分:0)

酒店如何在多个地方存在? 还有,这真的是一个大表,还是指大型数据库?

答案 2 :(得分:0)

我建议你使用星型模式对其进行建模。有一个区域维度。将有助于切片和切割数据。

星型模式用于基于数据仓库的应用程序。它允许用户以各种粒度级别分析数据。在您的情况下,您可以获得各种粒度级别的酒店数量。互联网充满了关于星型模式的大量信息。谷歌“星型模式”。您也可以阅读数据仓库。

这可能是一个很好的起点:http://en.wikipedia.org/wiki/Star_schema