阶梯式搜索算法。从N中选择一个,重复,重复,查看最终结果

时间:2014-03-19 08:03:24

标签: php mysql sql algorithm search

我想知道如何考虑需要您进行某些选择以查看最终结果的搜索系统。我说的是select表格,根据您的选择继续进行,然后您就会看到结果。

我正在谈论的一个随机例子如下所述。想象一下


Initial select  | Step 1         | Step 2                        | Step 3         | Step4    
---------------------------------------------------------------------------------------------------
A               | -- D or E or F | -- K or L or M or N           | -- RESULT      |
B               | -- D or H or I | -- O or P or L or Q or R      | -- RESULT      |
C               | -- D or I or J | -- Q or R or L or S or U or V | -- W or X or W | -- RESULT

初始选择在开头是select表单,在您继续操作时为您提供越来越多的相关select - ,最后给您最终结果。

这些形式如何制作?我应该如何在SQL中为此组织数据?

我可以使用PHP,Ruby,JavaScript,SQL,NoSQL,HTML5 / CSS。请给我一个指导,一个阅读链接或一些能让我有效地做这件事的事情。

更新

也许你可以告诉我这种系统的名称,这样我就可以自己研究一下。我应该怎么称呼谷歌才能了解我?

1 个答案:

答案 0 :(得分:0)

您可以通过自引用外键来定义选项,例如:

create table decisions(
  id int unsigned not null auto_increment,
  parent_id int unsigned,
  primary key (id),
  constraint fk_decisions_parent_id foreign key (parent_id) references decisions (id)
    on delete cascade on update cascade
)engine=innodb;

要根据决策查找选项,您将按如下方式查询:

 select *
 from decisions
 where parent_id = [decision ID];

如果没有返回任何选项,那么您已到达"结果"。