【问题标题】:Implement search in multiple tables in database with ASP .NET MVC使用 ASP .NET MVC 在数据库中的多个表中实现搜索
【发布时间】:2013-09-02 18:42:42
【问题描述】:

我有一个关于实现搜索功能的问题。我有一个表,其中包含 2 个用户 ID 和它们之间的交易详情(标题、日期、描述等)。我希望允许用户通过这些条件中的任何一个来搜索交易(因此输入“Mike Salary 2013”​​将导致与 Mike 的交易从 2013 年开始,其中标题或描述包含单词“salary”)。

这可以通过加入所需的表、创建搜索字符串并按该字符串过滤每个输入词来完成,但我担心的是,事务表被设计为最终有数百万行 - 所以加入多个表 + 字符串操作从数据库方面可能会很慢。

我的另一个想法是为搜索字符串创建单独的列 - 该字符串将在创建交易时创建,并包含所有必要的信息。问题是当用户决定更改他/她的名字时(用户可以在他们的“个人资料”页面中这样做)。分配给该用户的所有事务中的搜索字符串都将过时。

所以这是我的问题:是在用户更改姓名后搜索所有条目并更新搜索字符串更好(代价高昂,但用户不会经常更改姓名)还是放弃整个“搜索字符串”列“想法并使用老式连接来实现?或者也许还有其他选择?

感谢您的帮助:)

【问题讨论】:

    标签: sql sql-server asp.net-mvc search


    【解决方案1】:

    您应该使用Full Text Search。它实际上结合了你的两个想法。您可以在多个列和多个表上运行 FTS 查询。在幕后,FTS 使用索引,这类似于您的“搜索字符串列”的想法。

    【讨论】:

    • 但是我可以将它与 LINQ to Entities 一起使用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多