我需要一个多值列,它可以实现为 xml 字段
它可以根据需要转换为逗号分隔
使用 Xquery 在 sql server 中查询 XML 列表。
通过成为 xml 字段,可以解决一些问题。
使用 CSV:无法确保每个值都是正确的数据类型:没有办法防止 1,2,3,banana,5
使用 XML:标签中的值可以强制为正确的类型
使用 CSV:不能使用外键约束将值链接到查找表;没有办法强制引用完整性。
使用 XML:仍然是一个问题
使用 CSV:无法强制唯一性:无法阻止 1、2、3、3、3、5
使用 XML:仍然是一个问题
使用 CSV:如果不获取整个列表,则无法从列表中删除值。
使用 XML:可以删除单个项目
使用 CSV:难以搜索列表中具有给定值的所有实体;您必须使用低效的表扫描。
使用 XML: xml 字段可以被索引
使用 CSV:难以计算列表中的元素,或进行其他聚合查询。**
使用 XML:不是特别难
使用 CSV:很难将值加入到它们引用的查找表中。**
使用 XML:不是特别难
使用 CSV:很难按排序顺序获取列表。
使用 XML:不是特别难
使用 CSV:将整数存储为字符串占用的空间大约是存储二进制整数的两倍。
使用 XML:存储比 csv 还要糟糕
使用 CSV:加上很多逗号字符。
使用 XML:使用标签而不是逗号
简而言之,使用 XML 解决了分隔列表的一些问题,并且可以根据需要转换为分隔列表