gpt4 book ai didi

php - 在数据库中进行搜索的最有效方法

转载 作者:行者123 更新时间:2023-11-29 13:54:40 24 4
gpt4 key购买 nike

我有一个表单页面,然后在表单中有电话号码、年龄、邮政编码字段,我有一个生成按钮。当用户生成按钮时,我将自动填充表单中的问题。这些问题是调查问题,需要一些条件,我是否会在表格中显示。

我可以做所有的逻辑。我的问题是处理此验证的最佳方式,我将对此进行解释。

我有 Questions 表,其中包含 id、question、column_header

我有 Suppressions 表,其中包含 id、phone、column_header

验证是表单中的电话号码是否已经在抑制表中以及当您单击生成按钮时不应显示该问题的列标题名称。

例如

Questions
id | question | column_header|
___|__________|______________|
1 | test1 | ques1

Suppression
id | phone | column_header |
___|_______|_______________|
1 | 1234 | ques1

例如,表单中的电话号码是 1234 然后我单击生成按钮,我的 jQuery 和 Ajax 将处理它。我将在每个问题和每个问题中循环,我将在 Suppression 表中查询当前问题列标题是否已经与电话号码一起在该表中,如果是,那么我将不会启用或显示问题。

这样就可以了,我担心的是如果抑制表增长到数百万条记录并且我有 30 个问题怎么办。因此,对于每个问题,我现在需要在抑制表中的数百万条记录中进行搜索,以便在我需要禁用或启用问题时找到匹配项,并且每个 ajax 调用的过程会很慢。

有更好的方法吗?我使用 PHP Laravel 和 Postgre 作为我的数据库。

最佳答案

数百万条记录对于 RDBMS 来说不算什么。您在主 SQL 语句中使用子查询来查询 Suppresion 表。您的子查询在过滤 phonecolumn_header 后返回 count(*)。然后检查子查询的结果是否为零。仅当子查询的值为零时,您才在 Questions 表中匹配主 SQL。

例子:select * from Questions where column_header="yyy"0=(select count(*) from Suppresion where phone="xxx"and column_header="yyy")

关于php - 在数据库中进行搜索的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com