2012-03-21 108 views
0

我有一个表Students其中包含以下colums: Id,FirstName,LastName,Adress。 Colum Adress将只包含街道地址。数据库优化问题

现在的问题是:数据库优化将在​​另一个表中隔离Adress列更好吗?

+0

你想要优化什么? “地址”栏的内容是什么?它是否包含一个人的完整地址?如果是这样,最好把它分成不同的列,用于街道,城市,邮政编码等......如果你想得到一个好的答案,你必须更多地了解你的数据库/表格设计。 – 2012-03-21 11:45:16

回答

1

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

你不能做任何将地址放入单独列的Student表。

+0

最重要的是,使用外国客户端的城市,国家/地区表格将显着减少数据库的大小,并使查询速度更快(您处理的国家数量多少)?至少大多数情况下。 – TomTom 2012-03-21 11:50:55

+0

感谢您的回答,我会尝试这种方法 – cascadox 2012-03-21 12:00:54

+0

@TomTom绝对同意。规范化是一种优化技术。对于存储,性能和易用性...... – 2012-03-21 12:58:26

1

这取决于你将如何处理该地址。如果你需要将它作为不同的实体对待,即把单个地址链接到几个学生,反之亦然,你应该做标准化。 如果地址只是实体学生的属性,则保留原样。

0

有关管理地址的完整正确的数据结构:数据模型资源库,第1卷。这比获得正确的结果要复杂得多。