数据库结构
可以使用用户提交的搜索词来搜索transaction_detail表条目。关键字列包括搜索术语,例如描述和客户名称,并在添加新记录时插入。然后检查关键字列是否与搜索词匹配。
人员表
+----+------+
| ID | NAME |
+----+------+
| 12 | Mike |
+----+------+
Transaction_detail表
+----+--------------------------+-----------------+---------------------------+
| ID | DESCRIPTION | CUSTOMER_ID(FK) | KEYWORDS |
+----+--------------------------+-----------------+---------------------------+
| 55 | Delivery from ABC Stores | 12 | ABC stores, delivery,mike |
+----+--------------------------+-----------------+---------------------------+
方案
更改客户名称(Mike)时,需要使用Customer_id 12更新每行中的关键字列。
但是,当Transaction_details表有几百行时,此方法变得非常低效。有人能告诉我另一种改进表中记录搜索的方法。
答案 0 :(得分:2)
如@Niko所述,这应该存储在另一个表(或两个)中:
关键字表
+----+------------+
| id | name |
+----+------------+
| 1 | ABC stores |
| 2 | delivery |
+----+------------+
人与关键字表
+-----------+------------+
| person_id | keyword_id |
+-----------+------------+
| 12 | 1 |
| 12 | 2 |
+-----------+------------+
然后,当您想知道哪个关键字发送给女巫时,只需将它们加入ID即可获得您的列表。