Py学习  »  Community James A Mohler  »  全部回复
回复总数  1
8 年前
回复了 Community James A Mohler 创建的主题 » 需要有关mysql查询[duplicate]的帮助

我需要一个多值列,它可以实现为一个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可以解决分隔列表的一些问题,并且可以根据需要转换为分隔列表