-1

数据库结构

可以使用用户提交的搜索词来搜索transaction_detail 表条目。关键字列包括搜索词,例如描述和客户名称,并在添加新记录时插入。然后检查关键字列是否与搜索词匹配。

人表

+----+------+
| ID | NAME |
+----+------+
| 12 | Mike |
+----+------+

交易明细表

+----+--------------------------+-----------------+---------------------------+
| ID | DESCRIPTION              | CUSTOMER_ID(FK) | KEYWORDS                  |
+----+--------------------------+-----------------+---------------------------+
| 55 | Delivery from ABC Stores |              12 | ABC stores, delivery,mike |
+----+--------------------------+-----------------+---------------------------+

设想

当客户名称(Mike)发生变化时,需要更新每一行的关键字列,Customer_id 为 12。

但是,当 Transaction_details 表有几百行时,此方法变得非常低效。有人可以告诉我另一种改进表中记录搜索的方法。

4

1 回答 1

2

正如@Niko所说,这应该存储在另一个表(或两个)中:

关键字表

+----+------------+
| id | name       |
+----+------------+
|  1 | ABC stores |
|  2 | delivery   |
+----+------------+

人到关键词表

+-----------+------------+
| person_id | keyword_id |
+-----------+------------+
|        12 |          1 |
|        12 |          2 |
+-----------+------------+

然后,当您想知道女巫人的关键字是什么时,只需将它们加入 ID,您就会得到您的列表。

于 2013-02-01T08:46:41.840 回答