【发布时间】:2013-06-25 19:23:29
【问题描述】:
在我的数据库中,我有一个表,其中包含具有自己的主 ID 键和用户 ID 键的记录。客户端,在我的 javascript 中,我有一个包含许多用户 ID 的数组。对于这个数组中的每个 id,我希望在表中搜索并选择与匹配的用户 id 相关联的记录。我不确定我是否有最好、最有效的方法。
现在,这就是我的想法:
半伪代码:
Javascript
for each element (user id) in array:
.get( 'script.php', userid_data, function(response){
// ..do something with the row/record data of that specific user...
}
因此,对于该数组中的每个用户 ID,我执行 AJAX get() 请求,将该特定用户 ID 发送到 php 脚本,该脚本在整个表中搜索与用户 ID 匹配的记录/行。
PHP/MySQL (script.php)
/*..some connection code..*/
/*.. some receive code..*/
/* query code: */
"SELECT * FROM `recordTable` WHERE `userid` =" .var_containing_userid.";"
/*...some array to json encoding..*/
/* return attribute data */
然而,虽然这是我能想到的唯一方法,但这对我来说似乎并不是最有效的方法。
这是因为,理论上,用户 id 的数组和记录的数量在未来都可能无限多(或只是很多)。如果此表中有数百个 ID 和不断增长的记录,我不确定这会运行多快。
有没有更好/更快的方法?在这种方法的执行变得非常缓慢之前,记录表可以增长到多大?我正在使用 PhpMyAdmin。
【问题讨论】:
-
你能得到一堆用户吗?从 1 到 1000 到一个 javascript 数组中,并在客户端从那里执行搜索。如果没有找到,那么执行数据库搜索?
-
您是否可以将用户 ID/用户存储在数据库的另一个表中?因为那样你就可以使用 join,这肯定更快。
-
@iiro 不,恐怕不会...@petajamaja 嗯...在这种情况下如何加入帮助?所以我想我应该添加一个注释:我有一组 ID 客户端,因为我从 API (Facebook) 中提取这些用户 ID。它们是当前用户好友的用户 ID。我想如果他们已经很好地托管在我可以从中执行拉取请求的服务器上,为什么还要为他们准备另一个表。
标签: php sql ajax database web-applications