将多个 table 与完全相同的数据类型合并,并添加一列以标识来源 table
Combine multiple tables with exactly the same data types and add a column to identify the table of origin
我们正在建设一个网站,该网站共有 8 个静态网页。使用 'Content' table/model 生成每个网页。
所以我们有一个 HomeContent
和一个 FAQContent
table 等等
每个 tables/models 包含以下 3 列:
列:
Id | Type | Content
示例数据:
1 | h1 | "Welcome to our website!"
现在,我是一个菜鸟,我很难为我们的网站创建搜索功能。此搜索功能必须允许用户获得搜索结果页面,其中包含指向其搜索词所在网页的链接。
我的想法是将我们拥有的所有内容 table 组合成一个大内容 table,并在这个大内容 table 中添加一个名为 [=45] 的列=],它将包含数据最初来自的 table 的类型。
所以我希望得到类似的东西:
Id | Type | Content | Location
---+------+--------------+------------
1 | h1 | "Welcome!" | Home
2 | label| "Weather" | Info
3 | h4 | "Hello there"| Contact
可能有更简单的方法来创建一个有效的网站搜索引擎,但我(令人沮丧地)没有足够的知识来考虑任何其他方法...
谁能帮帮我?
编辑:
其他信息:以及用于我们主页的 HomeContent
模型示例:
public class HomeContent
{
public int Id { get; set; }
public string Type { get; set; }
public string Content { get; set; }
}
您应该修复数据模型并将所有内容存储在一个唯一的 table 中,其中一列包含每行所属的位置。
同时,您可以使用 union all
创建一个视图来模拟:
create view AllContents as
select id, type, content, 'Home' location from HomeContent
union all select id, type, content, 'Info' from InfoContent
union all ...
然后您可以搜索视图:
select * from AllContents where content like '%mySearchValue%'
正如 Gordon Linoff 所说,您可能还想看看全文搜索功能,它提供了一个内置解决方案来执行高效的文本搜索。
我们正在建设一个网站,该网站共有 8 个静态网页。使用 'Content' table/model 生成每个网页。
所以我们有一个 HomeContent
和一个 FAQContent
table 等等
每个 tables/models 包含以下 3 列:
列:
Id | Type | Content
示例数据:
1 | h1 | "Welcome to our website!"
现在,我是一个菜鸟,我很难为我们的网站创建搜索功能。此搜索功能必须允许用户获得搜索结果页面,其中包含指向其搜索词所在网页的链接。
我的想法是将我们拥有的所有内容 table 组合成一个大内容 table,并在这个大内容 table 中添加一个名为 [=45] 的列=],它将包含数据最初来自的 table 的类型。
所以我希望得到类似的东西:
Id | Type | Content | Location
---+------+--------------+------------
1 | h1 | "Welcome!" | Home
2 | label| "Weather" | Info
3 | h4 | "Hello there"| Contact
可能有更简单的方法来创建一个有效的网站搜索引擎,但我(令人沮丧地)没有足够的知识来考虑任何其他方法...
谁能帮帮我?
编辑:
其他信息:以及用于我们主页的 HomeContent
模型示例:
public class HomeContent
{
public int Id { get; set; }
public string Type { get; set; }
public string Content { get; set; }
}
您应该修复数据模型并将所有内容存储在一个唯一的 table 中,其中一列包含每行所属的位置。
同时,您可以使用 union all
创建一个视图来模拟:
create view AllContents as
select id, type, content, 'Home' location from HomeContent
union all select id, type, content, 'Info' from InfoContent
union all ...
然后您可以搜索视图:
select * from AllContents where content like '%mySearchValue%'
正如 Gordon Linoff 所说,您可能还想看看全文搜索功能,它提供了一个内置解决方案来执行高效的文本搜索。