我需要在网站上实现一个消息传递系统。有用户,这些用户可以互相发送消息。我怎样才能做到这一点?我需要什么样的数据库结构?
我现在拥有的是这样的:
CREATE TABLE `message` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`SenderId` int(11) NOT NULL,
`ReceiverId` int(11) NOT NULL,
`MessageContent` varchar(2000) COLLATE utf8_turkish_ci NOT NULL,
`MessageDate` datetime NOT NULL,
`Viewed` bit(1) NOT NULL DEFAULT b'0',
PRIMARY KEY (`Id`),
KEY `FK_Message_User_idx` (`SenderId`),
KEY `FK_Message_Receiver_idx` (`ReceiverId`),
CONSTRAINT `FK_Message_Sender` FOREIGN KEY (`SenderId`) REFERENCES `user` (`Id`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `FK_Message_Receiver` FOREIGN KEY (`ReceiverId`) REFERENCES `user` (`Id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=3
这是 MySql 创建表的脚本。基本上,我存储 senderid、receiverid 和 message。问题是,如果接收者将删除他的消息,消息也会从发件人那里消失。我想实现一个像邮箱这样的结构。你有什么建议?
PS 我正在使用 ASP.NET MVC 3 和 C# 开发项目。