Site İçi Mesaj Sistemi İçin Tablo Problemi - Çözüldü
-
Değerli Müridler;
Php ve Mysql ile bir CV veritabanı hazırlarken; bir konuda takıldım. Üyelerin (yaklaşık 60,000 kişi); pozisyonları ve grupları var. Ayrıca iş ilanları girişi yaptığım da bir ekran var.
Girdiğim iş ianı; hangi gruba hitap ediyorsa; o grupta ki üyelere site içerisinden mesaj göndermek istiyorum. Bu amaçla iki tane tablo oluşturdum.
-----
Tablo:1
mesajlar
id - konu - mmetin - gönderici - alıcıgrup - tarih
-----
Tablo:2
mesajdagitim
id - mesajid - alıcıgrup - alıcıid - okuyanlar - silenler
-----
2.tabloda ki alıcıid, okuyanlar ve silenler kısmını text yapıp; grup içerisinde ki kullanıcıların id'lerini , ile ayırmak suretiyle kaydettim. Aklımda; bu text'lerin içerisinden değerleri alıp; aynı zamanda okunan ve silinenleri tespit etmek ve ona göre inbox'u güncellemek vardır. Amma velakin; bir türlü burasını beceremedim. Eğer bu alanları text değil; int yapıp; her mesaj için grup içinde ki kullanıcı id'lerini tektek kaydedersem problem kalmıyor. Ama o zaman da; bir günde 3 ilan yayınlarsam; ortalama günlük 35000 yeni kayıt oluşuyor tablo2'de.
Bu konu hakkında bana tavsiyede bulunabilecek var mı?
Arkadaşlar; günlerdir düşündüğüm hedeyi; buraya post attıktan kısa süre sonra çözdüm. İhtiyacı olan olursa diye kodu paylaşıyorum...
$rowx = sizeof($rows); $exread = 0; $exdeleted = 0; $readarray = array(); $delarray = array(); for ($rowi = 0; $rowi < $rowx; $rowi++) { $unrow = explode(",",$rows[$rowi][4]); $delrow = explode(",",$rows[$rowi][5]); if (in_array("17", $unrow)) { $exread++; $readarray[] = $rows[$rowi][0]; } if (in_array("17", $delrow)) { $exdeleted++; $delarray[] = $rows[$rowi][0]; } } echo "No of Read Messages : ".$exread." (Okunan mesaj numaraları : ".$readarray[0]." ".$readarray[1].")<br><br>"; echo "No of Deleted Messages : ".$exdeleted." (Silinen mesaj numaraları : ".$delarray[0]." ".$delarray[1].")<br><br>";