У меня есть база данных 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, и я уверен, что есть очевидные и очень эффективные способы сделать то, что я хочу, вы, ребята, можете мне помочь?
Спасибо