User tablosu-> user_id(int), username(string:15), şifre(hash), güvenlik_anahtarı(string:60)
Mesaj tablosu-> gönderen_id(int), alan_id(int), mesaj(string:70), anahtar_onay(int:1)
Mesaj göndermek için kullanıcı seçiliyor, mesaj yazılıyor, gönder dediği zaman
1) gönderen kullanıcının kaç mesajı var bakılıyor eğer 50 ise uyarı verip exit
2) Eğer 50den azsa güvenlik anahtarının geçerliliğine bakıyor. Anahtar geçerliyse mesaj veritabanına mesaj işleniyor.
3)Alıcı mesajı yanıtlamayı seçerse yanıt verebiliyor.
iş görür. gönderen_id ve alan_id indeksleri ekleyin yoksa.
ben olsam şöyle yapardım.
conversations: id, to_user, from_user, created_at
messages: id, conversation_id, sender_id, is_read, deleted_for_user, created_at
yapının mantığı:
konuşma başlatma: bir kullanıcı, başka bir kullanıcıya mesaj göndermek istediğinde önce conversations tablosunda iki kullanıcı arasında bir konuşma olup olmadığı kontrol edilir. eğer yoksa yeni bir konuşma başlatılır ve mesaj bu konuşmaya eklenir.
mesaj gönderme: mesajlar, mevcut bir konuşmaya eklenir ve mesajın kim tarafından gönderildiği, ne zaman gönderildiği bilgileri saklanır.
mesaj silme: mesajlar tablosuna bir silme durumu eklenir. bu sütun mesajın kim için silindiğini takip eder