我有一個系統有用戶(發件人)可以給朋友(接收者)寫一個便條,接收者數量> = 0。消息文本保存在數據庫中,發件人和所有接收者都可以看到,然後他們登錄系統。發件人可以隨時添加更多的接收者。任何接收者都可以編輯消息甚至從數據庫中刪除它。對於這個系統我創建3個表,不久:郵件系統數據庫結構,需要幫助
用戶(用戶ID,用戶名,密碼)
消息(MESSAGEID,文本)
列表(ID,senderID,receiverID,MESSAGEID)
在表 「列表」 的每一行對應於配對發送器 - 接收器,如
sender_x_ID - receiver_1_ID - message_1_ID
sender_x_ID - 重ceiver_2_ID - message_1_ID
sender_x_ID - receiver_3_ID - message_1_ID
現在的問題是:
1.如果用戶從表「信息」刪除郵件如何自動從表「名單」中刪除的所有行這對應於已刪除的消息。我是否需要包含一些外鍵?
更重要的是:
2.如果發件人已經讓說3個人接他的MESSAGE1(USERNAME1,USERNAME2和USERNAME3),並在某一時刻決定添加username4和username5,並在同一時間從接收器的列表中排除USERNAME1 。 PHP代碼將獲得接收機(USERNAME2,USERNAME3,username4,username5)這意味着插入到餐桌 「名單」
sender_x_ID的新名單 - receiver_4_ID - message_1_ID
sender_x_ID - receiver_5_ID - message_1_ID
並且還從表中刪除「列表」對應於用戶1的行(這不是在該列表或接收器的任何更多)
sender_x_ID - receiver_1_ID - message_1_ID
從PHP發送哪個sql查詢使其以一種簡單而智能的方式實現?請幫忙! SQL查詢的例子將是完美的!
爲什麼沒有senderId作爲信息表中的列? – 2010-06-16 17:21:31
thx莫龍,好點!:) – Anna 2010-06-17 11:15:14