这更像是一个设计问题——而不仅仅是一个编码问题。
我已经有一个将数据存储在 SQLite DB 表中的应用程序。现在我想在其中添加搜索功能。
我知道为了启用搜索功能,我需要 FTS 表。
我拥有的表格(不完全相同,但给出了非常相似的示例):
内容表- 具有以下列:ID、标题、内容、创建者、创建者、更改者、更改者等...
评论表- 具有以下列:ID、评论、创建者、创建时间、回复等...
其他表,如用户数据、元数据、类别、标签等。
在这里,我只想要标题、内容和评论的搜索功能。显然,我不需要其他列(如由等创建的列)上的搜索功能。
哪个是最好的选择?
- 我应该丢弃旧表并只创建 FTS 表吗?
- 我是否应该继续使用旧表并创建仅支持搜索功能的新 FTS 表。
我在选项 1 中看到的问题是:
- 这是一个颠覆性的变化!
- 我有一组包含许多非文本列的多个表,我不打算在这些表上执行搜索。如何在 FTS 中对它们进行建模?
- 现在我正在利用 RDBMS 的功能,例如 Join 等,如果我完全切换到 FTS 表,我认为我将无法做到!
我在选项 2 中看到的问题是:
- 这将导致重复的表 - 并会消耗更多的内存/空间!
- 每次我在我的 SQL 表中插入/更新/修改一个条目时,我都必须在 FTS 表中进行相同的更改。
那么,最好的选择是什么?有没有任何机构面临过类似的挑战?