@HACKHERS alıntı olayına sıcak bakmıyodum ama bir mesaj başka bir mesaja cevap olarak yazıldıysa cevaplanan mesajı cevap mesajında bi fielda ekleyince eski mesaj silinse dahi konuşma geçmişinin bir kısmını da olsa hatırlatmak adına gayet başarılı bi yöntem sanırım basit sistemlerde. Bunu kullancam teşekkürler.

@yakoSin , Aslında ilk aşamada oldukça gelimiş bi öm mantığı düşünüyodum ama kodladıkça çok fazla sıkıntı çıktığını farkettim. Aslında mesaj kutusunu sınırlandırmak zorunda olmasam facebooktaki gibi konuşma geçmişi şeklinde mesajları listelemek en mantıklı gelen fikirdi sanırım kategori mantığına da gerek kalmadan yapılabilir ama önceki konuşmalar silindikçe çok yarım yamalak bi hal alcak gibi geldi.

Aslında gelişmiş bi sistem düşüncesiyle öm tablosu fieldlarını şu şekilde oluşturmuştum hala da gelişmiş bisistem kodlama hevesindeyim ama işler gerçekten inanılmaz ölçüde karışıyor. Özellikle de üye kontrol panelinde hem gelen mesajlar hem giden mesajlar sekmeleri ekleyince ve üyelere kendilerince özel olan mesajları arşivleme imkanı verince (kanıt niteliği taşıyan mesajlar vs).

Düşündüğüm ilk tablo yapısı aslında aşağıdaki gibiydi:
(Veritabanım nosql. alışık olmayanlar için söylüyorum dizi indisleri tablodaki fieldları temsil ediyor.)

$tarih	= [
	"t"			=>date("d.m.Y"),
	"s"			=>date("H:i:s"),
	"z"			=>time(),
	"onayt"		=>"",
	"onays"		=>"",
	"onayz"		=>intval(0),
	"okundut"	=>"",
	"okundus"	=>"",
	"okunduz"	=>intval(0),
];
$data = array(
	"tip"					=> $dizi["tip"],
	"sayfa"				=> $dizi["sayfa"],
	"konu"				=> $dizi["konu"],
	"mesaj"				=> $dizi["mesaj"],
	"onay"				=> $onay,
	"onaylayan"			=> "", 		/* yetkili id'si */
	"okundu"				=> false,
	"sil_alici"			=> false,
	"sil_gonderen"		=> false,
	"id_alici"			=> $dizi["id_alici"],
	"id_gonderen"		=> $dizi["id_gonderen"],
	"nick_alici"		=> $dizi["nick_alici"],
	"nick_gonderen"	=> $dizi["nick_gonderen"],
	"tarih"				=> $tarih,
	"arsiv_alici"		=> false,
	"arsiv_gonderen"	=> false,
	"arsiv_admin"		=> false,
	"admin_not"			=> ""
);
$yaz = $this->db -> uyeom->insert( $data );
if( $yaz["ok"] ){ $sonuc = true; }
return $sonuc;
Yukardaki yapıya göre düşüncem şeyleydi. Mesajı alan üye sil sekmesine tıkladığında mesajın sütunları kontrol edilir mesajı gönderen de mesajı kendi giden kutusundan sildiyse mesaj veritabanından silinir (yönetici arşivlemediyse ), eğer sadece mesajı alan üye mesajı sil dediyse mesajı gönderenin sildiğini belirten fiel true olarak işaretlenir ve gelen kutusunda o mesaj listelenmez bla bla bla aniden farkettim ki çok uzatmışım.

Gelişmiş bi' yapı tartışsak birileri fikir sunsa diğerleri nezaket çerçevesi içinde o fikrin eksiklerini yazsa daha gelişmiş firkirler sunulsa gerçekten çok mutlu olurum ve birçek kişinin işine yarar görüşündeyim.

Mesajlara sınır koyulmayan sistemlerde durum çok daha basit olabilir ama limit koyulması mecburi olan, asıl amacı mesajlaşma olmayan sistemler için durum gerçekten biraz karmaşık.

@yakoSin; @HACKHERS; değerli görüşleriniz için tekrar teşekkürler.