我有一个系统有用户(发件人)可以给朋友(接收者)写一个便条,接收者数量> = 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