首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个表与完全相同的数据类型组合在一起,并添加一列以标识原表。

将多个表与完全相同的数据类型组合在一起,并添加一列以标识原表。
EN

Stack Overflow用户
提问于 2020-01-20 15:40:09
回答 1查看 233关注 0票数 0

我们正在建设一个网站,总共有8个静态网页。使用“Content”表/模型生成每个网页。

所以我们有一个HomeContent和一个FAQContent表等等。

这些表/模型中的每一列都包含以下3列:

栏:

代码语言:javascript
复制
Id | Type | Content

示例数据:

代码语言:javascript
复制
1 | h1   | "Welcome to our website!"

现在,我是个菜鸟,我很难为我们的网站创建一个搜索功能。此搜索功能,必须允许用户获得一个搜索结果页面,其中包含链接到他们的搜索词所在的网页。

我的想法是将我们拥有的所有内容表合并到一个大的内容表中,并在这个名为“Location”的大内容表中添加一个列,它将包含数据最初来自的表的类型。

所以我希望能得到这样的东西:

代码语言:javascript
复制
Id | Type | Content      | Location 
---+------+--------------+------------
1  | h1   | "Welcome!"   | Home
2  | label| "Weather"    | Info
3  | h4   | "Hello there"| Contact

也许有一个更容易的方法来创建一个有效的网站搜索引擎,但我(令人沮丧地)没有足够的知识来考虑任何其他方式.

有人能帮帮我吗?

编辑

附加信息:以及用于我们主页的HomeContent模型示例:

代码语言:javascript
复制
public class HomeContent
{
    public int Id { get; set; }
    public string Type { get; set; }
    public string Content { get; set; }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-20 15:42:39

您应该修复您的数据模型,并将所有内容存储在一个唯一的表中,其中的列包含每一行所属的位置。

同时,您可以使用union all创建一个视图来模拟该视图:

代码语言:javascript
复制
create view AllContents as
select id, type, content, 'Home' location from HomeContent
union all select id, type, content, 'Info' from InfoContent
union all ...

然后您可以搜索视图:

代码语言:javascript
复制
select * from AllContents where content like '%mySearchValue%'

正如Gordon所评论的那样,您可能还想看看全文搜索功能,它提供了一个内置解决方案来执行高效的文本搜索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59826568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档