【问题标题】:database optimization issue数据库优化问题
【发布时间】:2012-04-05 22:16:00
【问题描述】:

我有一个表Students,其中包含以下列: Id,FirstName,LastName,Adress。 Adress 列将仅包含街道地址。

问题是:数据库优化将Adress列隔离在不同的表中会更好吗?

【问题讨论】:

  • 你想优化什么? “地址”栏的内容是什么?它是否包含一个人的完整地址?如果是这样,至少将其拆分为街道、城市、邮政编码等不同的列...如果您想要一个好的答案,您必须更多地了解您的数据库/表设计。

标签: sql sql-server sql-server-2008 optimization


【解决方案1】:

是的。如果将其分隔到另一张表中,则每人可以拥有多个地址。如果您将它分成两个不同的表,一个地址表和一个学生地址表以将两者映射在一起,您可以确保一个地址在人们之间共享,甚至可以跟踪一个人的地址历史记录。此外,在单独的表格中,您可以将地址分解为列,以便您可以轻松地按城市、省或国家/地区进行搜索。

您不能将地址放入 Student 表的单个列中。

【讨论】:

  • 最重要的是,带有外国 ke 的 City, Country 表将显着减小数据库大小并加快查询速度(您处理多少个国家/地区)?至少在大多数情况下。
  • @TomTom 绝对同意。标准化是一种优化技术。对于存储、性能、易用性...
【解决方案2】:

这取决于您将如何处理该地址。如果您需要将其视为不同的实体,即将单个地址链接到多个学生或反之亦然等,那么您应该进行规范化。 如果地址只是实体学生的属性,则保持原样。

【讨论】:

    【解决方案3】:

    关于管理地址的完整正确数据结构:数据模型资源书,第 1 卷。正确操作比您想象的要复杂得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2011-08-06
      • 2012-07-20
      • 2010-12-12
      相关资源
      最近更新 更多