根据以前的条目和外部数据更新数据库表的最有效方法?

时间:2019-04-18 21:20:50

标签: arrays database pdo compare

我有一个mysql数据库user_add,其中的条目表示用户在社交网络中彼此关注:

 id   | user_id | friend_id | time
 102  |  423    |   2A1     | 12:00
 103  |  2A1    |   423     | 12:01

现在,我希望某个组中的用户自动跟踪该组中的所有其他用户,这由php脚本完成。

我有一个数组$ usergroup,列出了该组中的所有user_id。

我的方法是


$stmt = $pdo->prepare('INSERT INTO user_add (user_id, friend_id, time) VALUES (?,?,?));

foreach($usergroup as $user){
   foreach($usergroup as $friend){
      if($user != $friend){
         $stmt->execute(array($user,$friend,date('H:i')));
      }
   }
}

这可以正常工作,但是问题是我必须定期更新表,因为$ usergroup数组会发生变化。这意味着我不能每次都运行上述代码,因为它会创建重复的条目。

我怎样才能最好地拥有一个脚本,该脚本可以自动使组中的所有用户关注所有其他用户并定期进行更新,而无需重复输入?

我将对此有几个想法:

1:只需删除整个表并每次都从头重新生成即可。我确定这对性能不利,而且不可能,因为用户也可以不使用脚本也可以自己关注其他用户!

2:为标记了自动条目的条目创建一个布尔列“自动”。每次更新时,所有标记为自动的条目都会被删除并重新创建。优于1,但肯定不是最佳性能。

3:仅在不存在先前条目的情况下创建新条目。但是我该怎么做?

我是PHP和SQL的新手,我敢肯定有明显且超高效的方法来完成我想要的工作,你们能帮我吗?

谢谢

0 个答案:

没有答案