13
收件人ID
收件人列表
图2-3-3邮件实体及属性图
(4)通告实体及属性图 部门 角色ID 状态 用户ID 图2-3-4通告实体及属性图
(5) 角色实体及属性图
权限 角色 抄送人ID
抄送人列表
通告编号 发布人 户名 标题 发送时间 内容 附件 通告 失效时间 角色编号 户名 角色名称
角色描述 图2-3-5角色实体及属性图
14
(6) 用户E-R图
部门 用户 用户 1 1 m 邮件 1 2.3.2 数据库的物理设计
(1)用户表(user表) 字段名 UserID Username Sex Password Email 数据类型 Int 可否为空 否 默认值 男 123456 备注 含义 主键,自增 用户编号 检查 员工姓名 性别 密码 邮件 Varchar2(5) 否 Varchar2(2) 否 Varchar2(6) 否 Varchar2(10) 是 Department Int Position Varchar2(10) Telephone Varchar2(11) addreess Varchar2(50) Photo 否 否 外键 部门ID 职位 是 电话 是 地址 Varchar2() 否 否 是 否 Now() 本科 照片 入职时间 状态 教育 Enterdate Datetime Zhuangtai Char(2) Education Char(5) (2)部门表(department表)
15
字段名 Depid Depname 数据类型 int 可否为空 否 默认值 备注 含义 主键,自增 部门编号 部门名称 部门描述 Varchar2(6) 否 是 Depdepress Varchar2(120) Deplevel Parent Number(18) 否 number(6) 否 0 没有上级部门默认值为0 层次 上级部门标号 Telephone Varchar2(11) 是 Fax Varchar2(20) 是 电话号码 传真 (3)邮件表(email表) 字段名 EmailID 数据类型 Number(11) Sender Varchar2(5) Senderid Sendtime content Title int Date OLE Varchar2(20) Copytoname Varchar2(100) CopytoID Varchar2(100) Receivenaem Varchar2(100) ReceiveID Varchar2否 否 是 是 抄送人姓名列表 抄送人ID列表 收件人姓名列表 抄送人ID否 否 否 否 发送人ID 发送时间 发送内容 邮件标题 否 发送人 可否为空 否 默认值 备注 主键 含义 邮件编号 16
(100) Mailstatus Number(2) 否 1 列表 1:正式;2:邮件状态 草稿 File 附件 是 附件 (4)通告表(notice表) 字段名 noticeID POSTname 数据类型 Int 可否为空 否 默认值 1 备注 含义 主键,自增 通告编号 发布人 标题 内容 生效时间 失效时间 Varchar2(5) 否 noticeTitle Varchar2(20) 否 Pcontent ontinme Losstime State OLE Date Date 否 是 是 Number(2) 否 1:已读;2:状态 未读 noticeFile 附件 UserID roleid Depid Int int int 是 否 否 否 外键 外键 外键 附件 用户编号 角色编号 部门编号 (5)角色表(role表) 字段名 roleid Rolenaem Rdepress 数据类型 int Char(10) Varchar2(10) Use number 否 3 1:超级管理权限 员;2:管理员;3:普通用户 可否为空 否 否 是 默认值 备注 含义 主键,自增 角色编号 角色名称 角色描述 17
2.3.3数据库的设计注意事项
1. 2.
对于字符型的字段,要确认字段的可能长度。
为了确保相关表之间关系的有效性,并且确保不会在无意之中删
除或更改相关数据,应当实施参照完整性。
3.
为了保证数据的完整性,需要对表之间和相互的数据进行约束,
通过外键建立表间的关系。
2.3.4数据库的设计实现
通过Android内容提供器(CntentPovider),可以访问可共享的数据结构,通常称为数据库(database)。基本步骤是获取打开数据库的权限,然后查询数据,最后访问数据。内容提供器(CntentPovider)使用SQLLite来管理数据库,并未用户提供创建数据库的途径,为读写操作提供数据等。步骤为:
1. 用内容提供器之前,必须先在Android应用程序中进行注册。通过Androidmanifest.xml文件中的一些XML代码来实现。
2. 在Elipse中创建内容提供器。
3. 定义安全权限。使用