eug*_*neK 3 c# sql sql-server asp.net
我有一个国家名单.每个用户都可以查看多个国家.保存后,此"用户国家/地区列表"将用于确定其他用户是否适合某些用户选择的国家/地区.
问题是解决这个问题最有效的方法......
我有一个,一个保存用户选择作为分隔列表,如加拿大,美国,法国......在单个varchar(最大)字段但问题是,一旦来自德国的用户进入页面我执行此检查.要搜索德国,我需要获取所有项目并取消分隔每个字段以检查值或使用sql'like'这又是非常慢的..
如果您有更好的解决方案或一些提示,我会很高兴听到.
只是为了确保,许多用户将拥有他们自己选择的国家/地区,并且只有他们希望用户才能登陆他们的页面.数百万用户将访问这些页面.所以更快的方法会更好.
技术,MSSQL和ASP.NET
谢谢
Dav*_*vid 10
您不应该在一个单元格中存储值列表.考虑使用一个单独的表来存储每个选定的国家/地区,并使用对用户表的外键引用.这是标准的数据库规范化.
请不要沿着您想到的路线走下去,在一个字段中存储多个条目.我不得不重新编写更多应用程序,因为数据库设计不好而不是出于任何其他原因,这是一个糟糕的设计.
添加
我在工作的墙上贴了这张海报:http: //www.informationqualitysolutions.com/FreeStuff/rettigNormalizationPoster.pdf
我的前任之一是DB Design的新手,这对她帮助很大.我会为任何可能需要它的新员工保留它.它通过示例很好地解释了规范化.
| 归档时间: |
|
| 查看次数: |
2699 次 |
| 最近记录: |