2009-07-30 64 views
1

我想弄清楚为一个简单的术语搜索多个不同表的最佳方法。我心目中Sql Server:实现一个多表搜索

1两种解决方案)创建一个“搜索表”具有以下结构,并创建在表上的触发器我想搜索到这些信息输入的搜索表

ID || String to check against || Table || TableId =================================================================

2)创建一个海量存储过程来搜索我关心的表和列。

我将在一个Asp.Net MVC网站上使用这个解决方案和实体框架,所以我现在倾向于第一个解决方案。

哪个解决方案更有意义/更好?

+0

不错的256那里。 – Sam 2009-07-30 20:32:41

+0

这是一次性的事情还是会在你的应用程序? – Sam 2009-07-30 20:35:28

+0

这将在应用程序 – 2009-07-30 20:50:13

回答

1

SQL Server全文搜索(FTS):

  • 高度优化
  • 支持多种
  • 语言查询多个服务器上
  • 索引XML类型很多
  • 更多的功能
  • 全文目录

SQL Server FTS由几个组成部分:

  • 收集者
  • 索引
  • 过滤管理器
  • 筛选Daemon
  • 全文目录

如果限制产出数量,SQL服务器FTS真正起作用好。

+0

设置FTS有多复杂?它与ASP.NET MVC很好地工作吗? – 2009-07-30 20:02:36

+0

并不复杂,一般适用于ASP.NET。在线看一些教程。 – 2009-07-30 21:23:29

0

选项1有很多的开销和复制数据 - 大联合视图会更好:

SELECT 'Table1', Table1_ID as Table_ID, Col1 as SearchCol 
FROM Table1 
UNION ALL 
SELECT 'Table2', Table2_ID as Table_ID, Col3 as SearchCol 
FROM Table2 
etc 

你甚至可以使一个索引视图,如果你需要更好的性能。