使用XML列而不是非规范化?

时间:2012-11-27 15:21:47

标签: sql-server xml

我们有一个存储约5米联系人的数据库,每个联系人都有多个地址。

数据库已标准化,单独的地址表与FK到联系人,正确编入索引。 ~10米地址。

地址再次引用省份&国家表格。

由于这是一个平台,一次查看一个联系人,并且不需要搜索地址属性(如果 - 我们使用Lucene.Net)....将地址信息放入一个是否有意义联系人上的XML字段?

<Addresses>
    <Address Street="" City="" ... />
    <Address Street="" City="" ... />
</Addresses>

它不是真正的非规范化 - 但仍然摆脱了3个连接(地址/国家/省)

或者问另一种方式.... 5mio记录和10mio记录加入甚至对数据库造成任何压力? (例如,有大约50个请求同时命中数据库?)

做这样的事情会不成熟? (事件,当我完全确定我永远不会查询地址属性...)

我们正在使用SQL Server 2012

1 个答案:

答案 0 :(得分:0)

如果您将此列用作nosql - 只是为了存储值并获取整个数据,可以使用此解决方案。但是有一些限制:

  1. 难以搜索此列中的数据(但可能)
  2. 很难修改此列中的数据(但可能)
  3. 您无法使用EF(仅使用存储过程)获取此列中的部分数据
  4. 没有外出键(您必须自己支持数据一致性)
  5. 你得到了这个好处:

    1. 简单存储(一张包含所有数据的表)
    2. 简单查询
    3. 很快,是的,您可以使用此解决方案,因为您说您不会查询部分数据或更改数据。