看到一个关于站内信设计的文章:http://www.cnblogs.com/grenet/archive/2010/03/08/1680655.html
受些启发,刚好自己也需要这样一个功能,就分享一下我的设计。
需要注意的点:
1、站内信可以是点对点发,也可以是群发,但发件人永远只有一个。
2、发件人不需要知道信是否已读
3、删除的时候,如果发件人把信删了,收件人的信不能丢失
综合分析,设计表如下:
message_sender 发件人信息表
mid from_uid from_username title content from_deleted date
mid:信息ID,自增
from_uid from_usernam:发件人的ID和用户名
title content:信息标题和内容
from_deleted:发件人是否删除
message_receiver 收件人信息表
rid mid to_uid to_username is_readed is_deleted
rid:id 自增
mid:信息ID,与message_sender表中MID对应
to_uid to_username:收件人信息
is_readed is_deleted:收件人是否已读是否删除
使用:
查发件箱:只需要查message_sender表
查收件箱:需要同时查两个表
群发邮件:message_sender表只需要插入一条数据,message_receive表重复插入。
删除邮件:只需要修改状态值
对于删除邮件,可能时间长了,会有一些收、发件人都删除的无用邮件存在。可以定期运行一断脚本来清理无效邮件,或者直接在删除的时候判断是否双方都删除了邮件,这样对群发实现相对复杂点。
当然,如果网站想记录所有的邮件往来,即使用户删除了,管理员还想看到,那只改一下状态就好了。
建表SQL
CREATE TABLE `message_sender` (
`mid` int(11) NOT NULL auto_increment,
`from_uid` int(11) NOT NULL COMMENT '发信人',
`from_username` varchar(32) NOT NULL,
`title` varchar(200) NOT NULL COMMENT '信息标题',
`content` text NOT NULL COMMENT '信息内容',
`from_deleted` tinyint(4) NOT NULL,
`date` int(10) NOT NULL COMMENT '发送日期',
PRIMARY KEY (`mid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户站内信' AUTO_INCREMENT=4 ;
CREATE TABLE `ar_message_receiver` (
`rid` int(11) NOT NULL auto_increment,
`mid` int(11) NOT NULL,
`to_uid` int(11) NOT NULL,
`to_username` varchar(32) NOT NULL,
`is_readed` tinyint(4) NOT NULL,
`is_deleted` tinyint(4) NOT NULL,
PRIMARY KEY (`rid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
分享到:
相关推荐
站内信的数据库设计 一、站内信的概念和特点 站内信是指在网站或平台内部实现的消息传送系统,类似于邮箱,主要由收件箱、发件箱、草稿箱和垃圾箱三部分组成。站内信不同于电子邮件,电子邮件通过专门的邮件服务器...
数据库设计方面,站内信内容表包含字段如ID、标题、内容、创建时间等,用于存储和管理站内信的信息。表结构设计应确保数据的完整性和一致性,以支持各种操作和查询。 总的来说,站内信设计方案旨在构建一个高效、...
软件数据库设计文档模板 software database design report document" 在软件开发项目中,数据库设计是非常重要的一步骤,它直接影响到软件系统的性能、安全性和可维护性。本文档提供了一份软件数据库设计文档模板...
数据库课程设计:长途汽车信息管理数据库设计 数据库课程设计:长途汽车信息管理数据库设计 数据库课程设计:长途汽车信息管理数据库设计 数据库课程设计:长途汽车信息管理数据库设计 数据库课程设计:长途汽车信息...
软件开发过程中数据库设计部分详解 数据库设计是软件开发过程中的一个关键部分,涉及到数据库系统的设计、开发和实施。数据库设计的任务是根据一个组织的信息需求、处理需求和数据库支撑环境,设计出数据库模式 ...
标题“支付交易平台数据库设计文档”表明本文档详细介绍了构建银行支付交易平台时所需设计的数据库架构。数据库设计是信息技术领域中极为重要的一环,尤其是在金融行业,其准确性、完整性和安全性的要求尤为严格。本...
工资管理系统数据库设计报告是信息技术学院信息管理与信息系统专业的一份课程设计报告,旨在通过实际操作来学习和理解数据库系统的设计与实现。这份报告涵盖了多个关键阶段,包括需求分析、概念设计、逻辑设计以及...
### 教务管理系统数据库设计详解 #### 一、引言 随着信息技术的发展,教育领域的信息化建设也变得日益重要。教务管理系统作为学校信息化建设的重要组成部分,对于提高学校的管理水平和服务质量具有重要意义。本篇...
本文档模板涵盖了数据库设计的各个方面,包括数据库环境说明、数据库命名规则、逻辑设计、物理设计、安全性设计、优化和数据库管理与维护说明等。 数据库环境说明 数据库环境说明是指数据库设计过程中的环境说明...
1. **数据库的概念**:数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。 2. **数据库管理系统(DBMS)**:用来管理和维护数据库的一系列软件程序集合。DBMS提供给用户一种方便的方式来创建、更新、管理...
软件开发数据库设计文档范例 软件开发中的数据库设计是软件系统的核心组件之一,对于软件系统的正确运行和高效开发至关重要。下面是软件开发数据库设计文档范例的详细知识点: 一、引言 数据库设计是软件开发中不...
网上购物商城数据库设计 数据库设计是网上购物商城的核心组件之一,涉及到整个系统的数据存储和管理。以下是网上购物商城数据库设计的相关知识点: 1. 数据库概念设计 在数据库设计中,需要遵守一定的命名规则和...
"学生选课系统数据库设计" 学生选课系统数据库设计是指根据学生选课系统的需求,设计和实施一个高效、可靠的数据库系统,以满足学生选课的需求。该系统涉及到多个方面,包括可行性分析、系统分析、逻辑设计、数据库...
数据库设计文档是数据库设计的核心文档,它记录了数据库设计的整个过程,包括数据库的逻辑结构、物理结构、表的设计、视图的设计、存储过程、函数及触发器的设计等。数据库设计文档能够帮助开发人员和维护人员更好地...
浅谈数据库设计技巧.mht
数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计数据库项目设计...
需求分析、概要设计、详细设计和数据库设计模板 需求分析是软件开发的第一步骤,是指确定软件需求的过程。需求分析的目的是确定软件的功能和性能,以便满足用户的需求。需求分析的输出是软件需求规格说明书(SRS)...
数据库课程设计数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库课程设计方案数据库...