我需要一个多值列,它可以实现为一个xml字段
它可以根据需要转换为逗号分隔
querying an XML list in sql server using Xquery
是的。
作为一个xml字段,可以解决一些问题。
使用csv:
无法确保每个值都是正确的数据类型:无法阻止1、2、3、香蕉、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可以解决分隔列表的一些问题,并且可以根据需要转换为分隔列表