Sistem DB yapısı posta, yardıma ihtiyacım var

0 Cevap php

i arkadaşlar (alıcılar), alıcıları> = 0 sayısı için bir not yazabilirsiniz orada sistem kullanıcıyı (gönderici) sahip. Mesajı Metin DB ve göndereni ve tüm alıcıları için görünür olarak kaydedilir daha sonra sisteme giriş yapın. Gönderici, herhangi bir zamanda daha fazla alıcıları ekleyebilirsiniz. Alıcıları herhangi üzerinde daha fazla mesaj düzenleyebilir ve hatta DB kaldırabilirsiniz. Bu sistem için ben kısaca, 3 tablolar oluşturuldu:

users(userID, username, password)
messages(messageID, text)
list(id, senderID, receiverID, messageID)

table "listesinde" her satır gibi, gönderici-alıcı çifti karşılık

sender_x_ID -- receiver_1_ID -- message_1_ID
sender_x_ID -- receiver_2_ID -- message_1_ID
sender_x_ID -- receiver_3_ID -- message_1_ID

Now the problem is:
1. if user deletes the message from table "messages" how to automatically delete all rows from table "list" which correspond to deleted message. Do i have to include some foreign keys?

More important:
2. if sender has let say 3 receivers for his message1 (username1, username2 and username3) and at certain moment decides to add username4 and username5 and at the same time exclude username1 from the list of receivers. PHP code will get the new list of receivers (username2, username3, username4, username5) That means insert to table "list"

sender_x_ID -- receiver_4_ID -- message_1_ID
sender_x_ID -- receiver_5_ID -- message_1_ID

ve ayrıca (daha fazla liste veya alıcıları değil) satır user1 olarak gelen tablo "listeden" silmek

sender_x_ID - receiver_1_ID - message_1_ID

hangi sql sorgusu kolay ve akıllı bir şekilde bunu yapmak için PHP göndermek için? Lütfen yardım edin! Sql sorgu örnekleri mükemmel olurdu!

0 Cevap