2010-05-04 51 views
0

我正在创建应用程序,其中用户可以保存选项SQL Server的困境,性能

女巫一个更好?

  1. 保存到用户表的varchar feeld smthing像( '1,23,4354,34,3') 查询这是SELECT * FROM数据,其中CHARINDEX( 'L',供应商,0)> 0

  2. 创建其他的表,其中用户选项,只是添加行 SELECT * FROM数据,其中供应商(从用户数据选择供应商其中userid = 100)

感谢您的帮助

回答

2

如果有可能,尽量避免将东西放入以逗号分隔的字符串中,然后强制SQL Server必须再次解析所有这些条目。

所以在你的情况下,我一定会选择两个 - 使用一个单独的表,并让你的用户选项作为单独的行保存到该表中。这是更简洁和更像SQL Server的解决方案,如果您正确处理它,它也会表现得更好(因为从表中检索数据,SQL Server的核心工作和能力 - 解析字符串不会)。