OA办公管理系统数据库设计说明书1. 引言本文档主要描述了OA办公管理系统数据库的设计方案,包括数据库的整体架构、表结构设计、字段设计、索引设计等。
本数据库设计旨在满足OA办公管理系统的需求,为系统的稳定运行提供支持。
2. 数据库整体架构2.1 数据库选型本系统采用MySQL数据库进行数据存储。
MySQL是一款开源的关系型数据库管理系统,具有高性能、易部署、易维护等特点,能够满足本系统的需求。
2.2 数据库架构设计本系统数据库分为三个层次:数据表、表空间、数据库。
数据表是数据库中的基本单位,存储具体的业务数据。
表空间是数据库中用于存储数据表的数据文件集合,一个数据库可以包含多个表空间。
数据库是表空间的管理单元,用于组织和管理表空间。
3. 表结构设计本数据库共包含10张表,分别为:用户表、部门表、岗位表、菜单表、角色表、权限表、公告表、任务表、日志表、配置表。
以下为各表的结构设计。
3.1 用户表(user)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,用户ID |username | varchar(50) | 用户名 |password | varchar(50) | 密码 |realname | varchar(50) | 真实姓名 |dept_id | int | 部门ID |post_id | int | 岗位ID |email | varchar(100) | 邮箱 |status | tinyint | 状态(1:正常,0:禁用) | create_time | datetime | 创建时间 |update_time | datetime | 更新时间 |3.2 部门表(dept)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,部门ID |name | varchar(50) | 部门名称 |parent_id | int | 父部门ID |leader_id | int | 部门领导ID |create_time | datetime | 创建时间 |update_time | datetime | 更新时间 |3.3 岗位表(post)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,岗位ID |name | varchar(50) | 岗位名称 |dept_id | int | 部门ID |create_time | datetime | 创建时间 |update_time | datetime | 更新时间 |3.4 菜单表(menu)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,菜单ID |name | varchar(50) | 菜单名称 |parent_id | int | 父菜单ID |sort | tinyint | 排序 |create_time | datetime | 创建时间 | update_time | datetime | 更新时间 | 3.5 角色表(role)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,角色ID |name | varchar(50) | 角色名称 | create_time | datetime | 创建时间 | update_time | datetime | 更新时间 | 3.6 权限表(permission)字段名 | 字字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,权限ID |name | varchar(50) | 权限名称 | role_id | int | 角色ID |menu_id | int | 菜单ID |create_time | datetime | 创建时间 | update_time | datetime | 更新时间 | 3.7 公告表(notice)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,公告ID |content | text | 公告内容 |creator_id | int | 创建者ID |create_time | datetime | 创建时间 |update_time | datetime | 更新时间 |3.8 任务表(task)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,任务ID |title | varchar(100) | 任务标题 |content | text | 任务内容 |assignee_id | int | 执行者ID |create_time | datetime | 创建时间 |due_time | datetime | 截止时间 |status | tinyint | 状态(1:待办,2:进行中,3:已完成,4:已取消) | update_time | datetime | 更新时间 |3.9 日志表(log)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,日志ID |user_id | int | 用户ID |operation | varchar(100) | 操作类型 |object_type | varchar(50) | 操作对象类型 |object_id | int | 操作对象ID |before_value | text | 操作前数据 |after_value | text | 操作后数据 |create_time | datetime | 创建时间 |3.10 配置表(config)字段名 | 字段类型 | 说明 |—— | ———- | ————– |id | int | 主键,配置ID |name | varchar(50) | 配置名称 |value | varchar(200) | 配置值 |create_time | datetime | 创建时间 |update_time | datetime | 更新时间 |4. 索引设计为了提高数据库的查询效率,本数据库设计了以下索引:•用户表:idx_username(username),idx_dept_id(dept_id),idx_post_id(post_id)•部门表:idx_name(name),idx_parent_id(parent_id)•岗位表:idx_name(name),idx_dept_id(dept_id)•菜单表:idx_name(name),idx_parent_id(parent_id)•角色表:idx_name(name)•权限表:idx_name(name),idx_role_id(role_id),idx_menu_id (menu_id)•公告表:idx_title(title)•任务表:idx_title(title),idx_assignee_id(assignee_id),idx_status(status)•日志表:idx_user_id(user_id),idx_operation(operation),idx_object_type(object_type),idx_object_id(object_id)•配置表:idx_name(name)5. 总结本数据库设计为OA办公管理系统提供了全面的数据存储方案。