邮件管理数据库设计--MySQL

邮件管理数据库设计--MySQL
友情链接
1、医疗信息管理系统数据库–MySQL
2、学⽣成绩管理系统数据库设计–MySQL
3、点餐系统数据库设计–SQL Server
4、商品管理系统数据库设计–SQL Server
5、SQL Server医疗信息管理系统数据库【英⽂版-源码】–(Medical Management System Database)
6、SQL Server电影院数据库管理系统【英⽂版-源码】–(Movie Theatre Management System Database)
1. 项⽬背景及需求分析
1.1 项⽬背景
电⼦邮件在企业中被⼴泛的应⽤,员⼯、客户等之间沟通交流、业务往来⼀般都会采⽤电⼦邮件。但是由于很多企业缺乏管理电⼦邮件的意识,导致⼤量电⼦邮件管理混乱,并且存在⼀定的业务数据安全隐患。为了使企业能够⾼效、安全、稳定的应⽤电⼦邮件,提升公司的管理、业务、客户服务⽔平,提⾼企业内部信息沟通效率,设计⼀款邮件管理系统数据库,保证⼯作对内沟通、对外业务⾼效运⾏。
1.2 需求分析
1.2.1 信息需求
对企业⽽⾔,邮件管理是管理⼯作中重要的⼀环,但是企业的邮件⼯作量⼤、繁杂,⼈⼯处理⾮常困难。因此,借助于强⼤计算机的处理能⼒,能够把⼈从繁重的邮件管理⼯作中解脱出来,并且更加准确、安全、清晰的管理环境。
1.2.2 功能需求
能够进⾏数据库的数据定义、数据操纵、数据控制等处理功能。具体功能应包括:可提联系⼈信息管理、邮件信息管理,包括添加、插⼊、删除、更新、查询,回信邮件标识,员⼯及客户联系信息查询的功能。
1.2.3 安全性与完整性要求
绿豆肽对于邮件管理系统数据库来说,由于其主要数据是邮件和联系⼈信息,只能由发件⼈、收信⼈以及相关抄送⼈知道,因此做好数据安全性是重中之重。另外,要求所有员⼯的邮件信息都要录⼊其中,并且要设计好个别情况。
2. 概念结构设计
概念结构设计是整个数据库设计的关键,它通过对⽤户需求进⾏综合、归纳与抽象,形成⼀个独⽴于具体DBMS的概念模型。
根据邮件信息管理数据库设计需求抽象出联系⼈、电⼦邮件、收件⼈集合、抄送⼈集合四个实体,联系⼈和电⼦邮件为强实体,收件⼈集合和抄送⼈集合为弱实体,两者依赖于联系⼈和电⼦邮件⽽存在。对四个实体之间的关系进⾏分析如下:
⼀个联系⼈会收发多封电⼦邮件,⼀封电⼦邮件可能会被多个⼈接收,所以联系⼈与电⼦邮件之间是多对多(m:n)的关系;
⼀个联系⼈可能属于多个收件⼈集合,⼀个收件⼈集合可能包含多个联系⼈,所以联系⼈与收件⼈集合是多对多(m:n)的关系;
同上,⼀个联系⼈可能属于多个抄送⼈集合,⼀个抄送⼈集合可能包含多个联系⼈,所以联系⼈与抄送⼈集合是多对多(m:n)的关系;
⼀封电⼦邮件会被⼀个收件⼈集合接收(这⾥收件⼈集合作为⼀个整体,⼀个集合可能包含多个收件⼈),⼀个收件⼈集合可能会接收多封电⼦邮件,所以电⼦邮件与收件⼈集合是多对⼀(n:1)的关系;
同上,⼀封电⼦邮件会被⼀个抄送⼈集合接收(这⾥抄送⼈集合作为⼀个整体,⼀个集合可能包含多个抄送⼈),⼀个抄送⼈集合可能会接收多封电⼦邮件,所以电⼦邮件与抄送⼈集合是多对⼀(n:1)的关系;
2.1 抽象出系统实体
联系⼈(⽤户ID、⽤户名、Email、电话、联系地址);
电⼦邮件(邮件ID、邮件标题、发件⼈ID、邮件发送时间,邮件内容、被回复邮件ID);
收件⼈集合(收件ID、邮件ID、收件⼈ID);
抄送⼈集合(抄送ID、邮件ID、收件⼈ID);
2.2 全局E-R图
3. 逻辑结构设计
3.1 关系模式
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计邮件管理数据库,包括联系⼈(contacts)、电⼦邮件(emails)、收件⼈集合(mail_recipients)、抄送⼈集合
拉紧带(copy_recipients)四个实体,其关系模式中对每个实体定义属性如下:
contacts 表:⽤户id(uid)、⽤户名(uname)、Email(email)、电话(cellphone)、联系地址(address),此为实
体“contacts 表”所对应的关系模式,⽤户id为该关系的候选码,满⾜第三范式;纱窗角码
emails表:邮件id(eid)、邮件标题(title)、发件⼈id(uid)、邮件发送时间(create_time)、邮件内容(textbody)、被回复邮件id(reply_eid),此为实体“emails表”所对应的关系模式,邮件id为该关系的候选码,满⾜第三范式;
mail_recipients表:收件id(mid)、邮件id(eid)、收件⼈id(uid),此为实体“mail_recipients表”所对应的关系模式,收件id为该关系的候选码,满⾜第三范式;
copy_recipients表:抄送id(cid)、邮件id(eid)、收件⼈id(uid),此为实体“copy_recipients表”所对应的关系模式,抄送id为该关系的候选码,满⾜第三范式。
3.2 表结构
数据库中包含4个表,即联系⼈(contacts)、电⼦邮件(emails)、收件⼈集合(mail_recipients)、抄送⼈集合
(copy_recipients)。
contacts表的表结构
emails表的表结构
耳机延长线
mail_recipients表的表结构
copy_recipients表的表结构
4. 物理设计和实施4.1 数据库及表创建4.1.1 创建数据库
-- 如果已有该数据库,则删除
DROP DATABASE IF EXISTS EmailManagement;
-- 创建数据库
CREATE DATABASE EmailManagement CHARSET=UTF8;
-- 使⽤数据库
USE EmailManagement;
4.1.2 创建数据表
-- 创建数据表
-- table 1: contacts
DROP TABLE IF EXISTS contacts;
CREATE TABLE contacts(
uid INT(10)UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, uname VARCHAR(25),
email VARCHAR(50),
cellphone BIGINT(11),
address VARCHAR(100)
);
智能筷子-- 设置CHECK 约束
ALTER TABLE contacts ADD CHECK(cellphone>0);
-- table 2: emails
DROP TABLE IF EXISTS emails;
CREATE TABLE emails(
eid INT(10)UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, title VARCHAR(120),
uid INT(10)UNSIGNED NOT NULL,
create_time DATETIME,
reply_id INT(10),
textbody TEXT,
FOREIGN KEY(uid)REFERENCES contacts(uid)
);
-- table 3: mail_recipients
DROP TABLE IF EXISTS mail_recipients;
CREATE TABLE mail_recipients(
mid INT(10)UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, eid INT(10)UNSIGNED NOT NULL,
uid INT(10)UNSIGNED NOT NULL,
FOREIGN KEY(eid)REFERENCES emails(eid),
FOREIGN KEY(uid)REFERENCES contacts(uid)
);
-- table 4: copy_recipients
DROP TABLE IF EXISTS copy_recipients;
CREATE TABLE copy_recipients(
cid INT(10)UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, eid INT(10)UNSIGNED NOT NULL,
uid INT(10)UNSIGNED NOT NULL,
FOREIGN KEY(eid)REFERENCES emails(eid),
FOREIGN KEY(uid)REFERENCES contacts(uid)
);
4.2 表数据插⼊
4.2.1 插⼊数据
-- 插⼊数据
INSERT INTO contacts VALUES
(0,"冯⼆","",132********,"北京市海淀区雪花⼤道博信国际⼤厦1楼101"), (0,"张三","",132********,"北京市海淀区雪花⼤道博信国际⼤厦2楼201"), (0,"李四","",132********,"北京市海淀区雪花⼤道博信国际⼤厦3楼301"), (0,"王五","",132********,"北京市海淀区雪花⼤道博信国际⼤厦4楼402"), (0,"赵六","",132********,"北京市海淀区雪花⼤道博信国际⼤厦5楼503"), (0,"赵七","",132********,"北京市海淀区雪花⼤道博信国际⼤厦6楼604"), (0,"赵⼋","",132********,"北京市海淀区雪花⼤道博信国际⼤厦7楼705"), (0,"孙⼗","",132********,"北京市海淀区雪花⼤道博信国际⼤厦8楼806"), (0,"周⼀","",132********,"北京市海淀区雪花⼤道博信国际⼤厦9楼907"), (0,"周⼆","",139********,"北京市海淀区雪花⼤道博信国际⼤厦9楼908"), (0,"周三","",19288886666,"北京市海淀区雪花⼤道博信国际⼤厦9楼909");橡胶软化油
4.2.2 测试约束
-- 测试CHECK约束
INSERT INTO contacts VALUES
(0,"周三","",-1528886666,"北京市海淀区雪花⼤道博信国际⼤厦9楼909");
– CHECK约束测试结果如下:
CHECK约束正常,在cellphone字段插⼊负数时,约束⽣效并报错。
4.2.3 插⼊其他表数据

本文发布于:2024-09-21 15:25:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/114826.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:邮件   数据库   集合   联系   设计   管理   关系   抄送
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议