Sql 数据库优化问题

Sql 数据库优化问题,sql,sql-server,sql-server-2008,optimization,Sql,Sql Server,Sql Server 2008,Optimization,我有一个表Students,其中包含以下列: Id、FirstName、LastName、address。 列地址将只包含街道地址 问题是:数据库优化将列address隔离在另一个表中是否更好?是。如果您将其拆分为另一个表,则每个人可以有多个地址。如果您将其分为两个不同的表,一个地址表和一个StudentAddress表,以将两者映射在一起,则可以确保一个地址在人与人之间共享,甚至可以跟踪一个人的地址历史记录。此外,在一个单独的表中,您可以将地址分解为列,以便您可以轻松地按城市、省或国家进行搜索

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


问题是:数据库优化将列
address
隔离在另一个表中是否更好?

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


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

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

你想优化什么?“地址”一栏的内容是什么?它包含一个人的完整地址吗?如果是这样的话,至少把它分成街道、城市、邮政编码等不同的栏。。。如果你想要一个好的答案,你必须告诉更多关于你的数据库/表设计的信息。最重要的是,一个带有外国ke的城市、国家表将大大减少数据库的大小,并使查询更快(你处理了多少个国家)?。“至少在大多数情况下,”汤姆完全同意。规范化是一种优化技术。对于存储、性能、易用性。。。