在数据库表中有效地查找唯一值

Dan*_*ell 4 sql database sql-server asp.net asp.net-mvc

我有一个包含大量行的数据库表.此表表示系统记录的消息.每条消息都有一个消息类型,并将其存储在表中的自己的字段中.我正在编写一个用于查询此消息日志的网站.如果我想按消息类型进行搜索,那么理想情况下我希望有一个下拉框,列出数据库中出现的消息类型.消息类型可能会随着时间的推移而发生变化,因此我无法将类型硬编码到下拉列表中.我将不得不做一些查找.迭代整个表内容以查找唯一的消息值显然是非常愚蠢但是在数据库字段中是愚蠢的我在这里要求更好的方法.也许一个单独的查找表,数据库偶尔更新,列出我可以填充我的下拉列表的唯一消息类型将是一个更好的主意.

任何建议将不胜感激.

我正在使用的平台是ASP.NET MVC和SQL Server 2005

Yur*_*ich 9

一个单独的查找表,其中包含存储在日志中的消息类型的ID.这将减小日志并提高日志效率.它还会规范化您的数据.


Ada*_*Dev 5

是的,我肯定会使用单独的查找表.然后,您可以使用以下内容填充它:

INSERT TypeLookup (Type)
SELECT DISTINCT Type
FROM BigMassiveTable
Run Code Online (Sandbox Code Playgroud)

然后,您可以定期运行充值作业,从主表中提取查找表中尚不存在的新类型.