我有一个关于实现搜索功能的问题。我有一个表,其中包含 2 个用户 ID 和他们之间的交易详情(标题、日期、描述等)。我想允许用户通过这些条件中的任何一个来搜索交易(因此输入“Mike Salary 2013”将导致与 Mike 的交易从 2013 年开始,其中标题或描述包含单词“salary”)。
这可以通过加入所需的表、创建搜索字符串并按该字符串过滤每个输入单词来完成,但我担心的是,事务表的设计最终具有数百万行 - 所以从数据库端加入多个表 + 字符串操作可能很慢。
我的另一个想法是为搜索字符串创建单独的列 - 该字符串将在创建事务时创建,并包含所有必要的信息。问题是当用户决定更改他/她的名字时(用户可以在他们的“个人资料”页面中这样做)。分配给该用户的所有事务中的搜索字符串都将过时。
所以这是我的问题:是在用户更改姓名后搜索所有条目并更新搜索字符串更好(这会很昂贵,但用户不会经常更改姓名)还是放弃整个“搜索字符串列”的想法和用老式的连接来做吗?或者也许还有另一种选择?
谢谢你的帮助 :)