我需要一个多值列,它可以实现为xml字段
可以根据需要将其转换为以逗号分隔的逗号
使用Xquery在sql服务器中查询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可以解决分隔列表的一些问题,并且可以根据需要将其转换为分隔列表