繁体   English   中英

PHP多面搜索

[英]php faceted search

我有表问题 (MySQL与PHP),其中包含问题,类别(多个)和subcat(多个)。 为了简化,同时保存每个问题,我将类别保存为逗号分隔,如下所示

qid    question      catid    subcat
2     question1        2,3,4   5,7

像这样我现在在DB中有1000个问题

在进行多面搜索时,我想针对每个类别及其对应的子类别(如下面的树格式)进行过滤

 cat1(5)
   subcat1(3)
   .........
 cat2(24)
 ..........

为此,我只是在执行in_array的同时,为该问题表的每个循环中的每个问题搜索特定的猫。该页面现在变慢了。 以及文本搜索。

这是一个不错的主意还是向我提出了一些正确的建议。

我是否想为类别单独使用表格?

Thanxs,戈壁

是的,正确的方法是将类别和子类别的表分别设置为:

Table Category
--------------
qid   cat-id


Table Sub_category
------------------
qid   sub_cat_id

这样,您的问题表可简化为:

Table Question
---------------
id    Question

在单独的表中存储关系信息的正确方法。 因此,也许您会发现此结构有用:

question表,包含问题信息:

CREATE TABLE `question` (`id` int, `question` text);

包含类别信息的表:

CREATE TABLE `category` (`id` int, `parent_id` int, `category` tinytext);

表,包含关系:

CREATE TABLE `question_category` (`question_id` int, `category_id` int);

通过这种结构,您将可以轻松地拥有大的类别深度和大的联系数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM