FiRеFоX
V.I.P.
- Регистрация
- 07.08.2010
- Сообщения
- 744
Пользователь попросил сделать подписку на комменты, ну типа если кто-то откомментил фото, на которое он подписан, то ему будет приходить письмом, что добавлен коммент к фотографии этого чела и надо сходить глянуть. Типа уведомлений кароч. Письмо - в смысле в "личные сообщения" сайта, а не по эмайлу.
Я сделал отдельную таблицу с "id" подписчиков и "id" фотографий. При добавлении нового коммента, эта таблица сканируется и выбираются подписчики. Затем я циклом перебираю эти id_login подписчиков и всё собираю в массив для последующего запроса, примерно вот так:
Но потом подсчитал, что если за сутки будет добавлено 100 комментов и будет 100 подписчиков, то это будет 100*100 = 10000 писем разослано. И это только к 1 фото. Вобщем, вариант гамно вышел.
Есть предложения как сделать не такую ресурсоемкую подписку?
Я сделал отдельную таблицу с "id" подписчиков и "id" фотографий. При добавлении нового коммента, эта таблица сканируется и выбираются подписчики. Затем я циклом перебираю эти id_login подписчиков и всё собираю в массив для последующего запроса, примерно вот так:
Код:
foreach($array_subs as $value) {
$text = 'Новый комментарий к фотографии '.$name_photo.' от пользователя '.$value['name'];
$array_insert_sql[] = "(".$value['id_login'].", '$text', 1)";
}
if(count($array_insert_sql) > 0) {
select("insert into `msg_comment` (`id_login`, `text`, `read`) values ".implode(',',$array_insert_sql));
}
Есть предложения как сделать не такую ресурсоемкую подписку?