首页 > 数据库 >阅文批示与资产管理系统数据库设计详解

阅文批示与资产管理系统数据库设计详解

时间:2024-11-07 22:07:58浏览次数:2  
标签:文件 管理系统 阅文 外键 ID 详解 user document id

阅文批示与资产管理系统数据库设计详解

项目背景:为了提升文件处理及资产管理的效率,该系统设计了完善的数据库结构,以满足不同角色的需求。通过记录文件的审批、传阅、资产交易等过程,实现了文件和资产的全生命周期管理。

数据库表结构概述

系统数据库包含用户、文件、资产、通知等多个功能模块,具体设计如下:

  1. 用户表 (user)
  2. 角色表 (role)
  3. 用户角色表 (user_role)
  4. 部门表 (department)
  5. 文件表 (document)
  6. 文件审批表 (document_approval)
  7. 文件批示表 (document_instruction)
  8. 文件传阅表 (document_circulation)
  9. 文件退回记录表 (document_return)
  10. 资产表 (asset)
  11. 资产交易表 (asset_transactions)
  12. 附件表 (attachment)
  13. 通知表 (notification)
  14. 系统日志表 (system_log)
  15. 文件阅读日志表 (reading_log)

1. 用户管理模块

用户表 (user)

  • 主键user_id - 唯一标识每个用户。

  • 外键

    • role_id - 引用 role 表,指定用户的角色。
    • department_id - 引用 department 表,表示用户所属部门。
  • 表描述:记录系统用户的基本信息,包括用户名、密码、角色、所属部门等。每个用户都具有唯一的角色和部门关系。


    字段 数据类型 主键 外键 备注
    user_id INT 用户ID
    username VARCHAR(50) 用户名
    password VARCHAR(255) 用户密码
    role_id INT 角色ID,外键指向 role 表
    department_id INT 部门ID,外键指向 department 表
    email VARCHAR(100) 邮箱
    phone_number VARCHAR(20) 电话号码
    status ENUM 用户状态
    created_at TIMESTAMP 创建时间
    updated_at TIMESTAMP 更新时间

角色表 (role)

  • 主键role_id - 唯一标识每个角色。

  • 表描述:定义系统中的用户角色及权限,存储角色名称和描述信息。角色表中的每个记录定义了一种用户权限,关联到 user 表中的 role_id 字段。


    字段 数据类型 主键 外键 备注
    role_id INT 角色ID
    role_name VARCHAR(50) 角色名称
    description TEXT 角色描述
    created_at TIMESTAMP 角色创建时间
    updated_at TIMESTAMP 角色更新时间

用户角色表 (user_role)

  • 主键:无复合主键。

  • 外键

    • user_id - 引用 user 表,指定用户ID。
    • role_id - 引用 role 表,指定角色ID。
  • 表描述:解决用户与角色的多对多关系,每个用户可以分配多个角色,每个角色可以分配给多个用户。


    字段 数据类型 主键 外键 备注
    user_id INT 用户ID,外键指向 user 表
    role_id INT 角色ID,外键指向 role 表

2. 部门管理模块

部门表 (department)

  • 主键department_id - 唯一标识每个部门。

  • 外键

    • parent_id - 引用本表 department_id,实现部门的层级关系。
  • 表描述:记录系统中各个部门的信息,包含部门名称、上级部门ID(实现多层部门结构)等。可以关联 user 表的 department_id 字段来指定用户的部门。


    字段 数据类型 主键 外键 备注
    department_id INT 部门ID
    department_name VARCHAR(100) 部门名称
    parent_id INT 上级部门ID,外键指向 department 表
    created_at TIMESTAMP 创建时间
    updated_at TIMESTAMP 更新时间

3. 文件管理模块

文件表 (document)

  • 主键document_id - 唯一标识每个文件。

  • 外键

    • created_by - 引用 user 表,指向文件的创建者。
    • department_id - 引用 department 表,指向文件所属部门。
  • 表描述:记录文件的基本信息,包括标题、内容、状态等。status 字段表示文件的处理进度(如待审批、已审批等)。


    字段 数据类型 主键 外键 备注
    document_id INT 文件ID
    title VARCHAR(255) 文件标题
    content TEXT 文件内容
    status ENUM 文件状态
    created_by INT 创建者ID,外键指向 user 表
    created_at TIMESTAMP 创建时间
    updated_at TIMESTAMP 更新时间
    department_id INT 负责部门ID,外键指向 department 表

文件审批表 (document_approval)

  • 主键approval_id - 唯一标识每个审批记录。

  • 外键

    • document_id - 引用 document 表,指向被审批的文件。
    • approver_id - 引用 user 表,指向审批文件的用户。
  • 表描述:记录文件审批的详细信息,包括审批状态、审批意见、审批时间等。


    字段 数据类型 主键 外键 备注
    approval_id INT 审批ID
    document_id INT 文件ID,外键指向 document 表
    approver_id INT 审批人ID,外键指向 user 表
    approval_comment TEXT 审批意见
    approval_status ENUM 审批状态
    approved_at TIMESTAMP 审批时间

文件批示表 (document_instruction)

  • 主键instruction_id - 唯一标识每条批示记录。

  • 外键

    • document_id - 引用 document 表,指向被批示的文件。
    • issuer_id - 引用 user 表,指向批示文件的用户。
  • 表描述:记录文件批示的信息,包括批示内容、批示人、批示时间等,批示的状态(待处理或已完成)。


    字段 数据类型 主键 外键 备注
    instruction_id INT 批示ID
    document_id INT 文件ID,外键指向 document 表
    issuer_id INT 批示人ID,外键指向 user 表
    instruction_text TEXT 批示意见
    issued_at TIMESTAMP 批示时间
    status ENUM 批示状态
    comment TEXT 备注

文件传阅表 (document_circulation)

  • 主键circulation_id - 唯一标识每个传阅记录。

  • 外键

    • document_id - 引用 document 表,指向被传阅的文件。
    • user_id - 引用 user 表,指向传阅文件的用户。
  • 表描述:记录文件的传阅过程,包括传阅顺序、阅读时间等,用于跟踪文件在不同用户间的传阅状态。


    字段 数据类型 主键 外键 备注
    circulation_id INT 传阅ID
    document_id INT 文件ID,外键指向 document 表
    user_id INT 传阅人ID,外键指向 user 表
    sequence LIST 传阅范围
    read_at TIMESTAMP 阅读时间
    assigned_at TIMESTAMP 分配时间
    completed_at TIMESTAMP 完成时间

文件退回记录表 (document_return)

  • 主键return_id - 唯一标识每个退回记录。

  • 外键

    • document_id - 引用 document 表,指向被退回的文件。
    • returned_by - 引用 user 表,指向退回文件的用户。
  • 表描述:记录文件被退回的原因及状态,用于在审批或传阅过程中跟踪文件的退回信息。


    字段 数据类型 主键 外键 备注
    return_id INT 退回记录ID
    document_id INT 文件ID,外键指向 document 表
    returned_by INT 退回操作的用户,外键指向 user 表
    return_reason TEXT 文件退回的原因
    return_date TIMESTAMP 文件退回的时间
    status_after_return ENUM 退回后文件的状态

4. 资产管理模块

资产表 (asset)

  • 主键asset_id - 唯一标识每个资产。

  • 外键

    • assigned_to - 引用 user 表,指向当前资产的分配用户。
    • department_id - 引用 department 表,指向资产所在部门。
  • 表描述:记录系统中资产的基本信息,包括资产名称、状态、位置等。status 字段标识资产的当前使用状态,如可用、已分配、已报废等。


    字段 数据类型 主键 外键 备注
    asset_id INT 资产ID
    name VARCHAR(100) 资产名称
    status ENUM 资产状态
    location VARCHAR(255) 资产位置
    added_at TIMESTAMP 添加时间

资产交易表 (asset_transactions)

  • 主键transaction_id - 唯一标识每个交易记录。

  • 外键

    • asset_id - 引用 asset 表,指向交易的资产。
    • performed_by - 引用 user 表,指向执行交易的用户。
  • 表描述:记录资产的交易历史,包括交易类型(分配、移交、归还、报废)、执行用户、交易日期等。


    字段 数据类型 主键 外键 备注
    transaction_id INT 交易ID
    asset_id INT 资产ID,外键指向 asset 表
    user_id INT 用户ID,外键指向 user 表
    transaction_type ENUM 操作类型
    status ENUM 状态
    processed_at TIMESTAMP 操作时间

5. 附件与通知模块

附件表 (attachment)

  • 主键attachment_id - 唯一标识每个附件。

  • 外键

    • document_id - 引用 document 表,指向附件所属的文件。
  • 表描述:用于存储文件的附件信息,包括附件文件路径、文件名、文件类型等。


    字段 数据类型 主键 外键 备注
    attachment_id INT 附件ID
    document_id INT 文件ID,外键指向 document 表
    file_path VARCHAR(255) 文件路径
    file_name VARCHAR(255) 文件名
    file_type VARCHAR(255) 文件类型
    uploaded_at TIMESTAMP 上传时间

通知表 (notification)

  • 主键notification_id - 唯一标识每条通知。

  • 外键

    • user_id - 引用 user 表,指向接收通知的用户。
    • related_document_id - 引用 document 表,指向相关的文件。
  • 表描述:用于发送系统内通知,提醒用户相关的操作或进度,包含通知内容、是否已读等信息。


    字段 数据类型 主键 外键 备注
    notification_id INT 通知ID
    user_id INT 通知用户ID,外键指向 user 表
    message TEXT 通知内容
    is_read ENUM 是否阅读
    related_document_id INT 相关文件ID,外键指向 document 表
    created_at TIMESTAMP 创建时间

6. 系统日志与阅读日志模块

系统日志表 (system_log)

  • 主键log_id - 唯一标识每条日志记录。

  • 外键

    • user_id - 引用 user 表,指向执行操作的用户。
  • 表描述:记录系统中用户的操作日志,用于审计和追踪问题,包含操作类型、操作描述、用户IP地址等信息。


    字段 数据类型 主键 外键 备注
    log_id INT 日志ID
    user_id INT 用户ID,外键指向 user 表
    action VARCHAR(100) 操作类型
    description TEXT 操作描述
    ip_address VARCHAR(45) 用户操作的IP地址
    created_at TIMESTAMP 操作发生的时间

文件阅读日志表 (reading_log)

  • 主键log_id - 唯一标识每条阅读日志记录。

  • 外键

    • document_id - 引用 document 表,指向被阅读的文件。
    • reader_id - 引用 user 表,指向阅读文件的用户。
  • 表描述:记录文件的阅读情况,包括阅读人、阅读时间、阅读意见等,用于跟踪文件的传阅状态。


    字段 数据类型 主键 外键 备注
    log_id INT 文件阅读日志ID
    document_id INT 文件ID,外键指向 document 表
    reader_id INT 阅读人ID,外键指向 user 表
    comments TEXT 阅读意见
    read_at TIMESTAMP 阅读时间

表与表之间的逻辑关系

  • 用户与角色:用户表(user)与角色表(role)通过用户角色表(user_role)实现多对多关系。一个用户可以拥有多个角色,一个角色也可以赋给多个用户。

  • 用户与部门user 表中的 department_id 作为外键关联 department 表,每个用户属于一个部门,部门表实现了组织的层级结构。

  • 文件与审批、批示:文件表(document)与文件审批表(document_approval)、文件批示表(document_instruction)存在一对多关系。文件的每一步审批或批示都通过对应表记录。

  • 文件与传阅、退回document 表与 document_circulationdocument_return 表存在一对多关系,传阅记录文件在不同用户间的传递过程,退回表记录文件的退回原因和状态。

  • 资产与交易asset 表与 asset_transactions 表存在一对多关系。资产交易表记录每个资产的分配、移交、报废等操作。

  • 附件与文件:附件表(attachment)与文件表(document)一对多关联,每个文件可以有多个附件,用于记录上传的文件或图片。

  • 通知与用户、文件notification 表记录发送给用户的通知信息,关联 user 表和 document 表,提醒用户关于文件的审批状态或新消息。

总结

"阅文批示与资产管理系统"的数据库设计通过合理的表结构和外键关系,确保了系统中数据的完整性与一致性。通过详细的审批、批示、传阅及日志记录功能,系统能够有效地支持文件与资产的全生命周期管理。

标签:文件,管理系统,阅文,外键,ID,详解,user,document,id
From: https://www.cnblogs.com/wyuuuuu/p/18534116

相关文章

  • 基于STM32的智能停车场管理系统设计
    引言本项目旨在基于STM32微控制器设计一个智能停车场管理系统。该系统集成了多种传感器和控制模块,以实现停车位实时检测、车辆识别、自动控制栏杆、车位信息显示和云端数据管理等功能。智能停车场管理系统可以有效提升停车场的运转效率,改善车主的停车体验,减少人工管理成本,并且......
  • Oracle OCP认证考试考点详解082系列14
    题记:本系列主要讲解OracleOCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。66.第66题:题目解析及答案:关于撤销(UNDO)和撤销表空间(UNDOTABLESPACE),以下哪两个陈述是正确的?A.一个撤销表空间可能仅由一个实例所拥有。B.撤销段由SYSBACKUP所拥有。C.撤销段由......
  • 大数据学习笔记 第5天 ZooKeeper 3.6.3安装部署 CAP原则 Paxos算法 ZAB协议详解
    ZooKeeper3.6.3重点CAP原则Paxos算法存储模型和监听机制一、集群与分布式集群:将一个任务部署在多个服务器,每个服务器都能独立完成该任务。分布式:将一个任务拆分成若干个子任务,由若干个服务器分别完成这些子任务,每个服务器只能完成某个特定的子任务。从概念上就可......
  • 免费送源码:python+Django+MySQL Django实验室管理系统 计算机毕业设计原创定制
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个实验室管理系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分......
  • 操作符详解(上)
    1.操作符的分类 2.移位操作符3.位操作符4.单目操作符5.逗号表达式6.下标访问,函数调用操作符7.结构体成员访问操作符                  一.操作符的分类  二.移位操作符2.1 左移操作符(<<)移位规则:左边抛弃,右边补0如上......
  • 学生信息管理系统
    DDL和DML--创建学生表CREATETABLEstudents(student_idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50),ageINT,genderVARCHAR(10));--创建课程表CREATETABLEcourses(course_idINTPRIMARYKEYAUTO_INCREMENT,course_name......
  • [免费]SpringBoot+Vue(高校)学籍管理系统【论文+源码+SQL脚本】
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue(高校)学籍管理系统,分享下哈。项目视频演示【免费】SpringBoot+Vue(高校)学籍管理系统Java毕业设计_哔哩哔哩_bilibili项目介绍对在线学籍管理的流程进行科学整理、归纳和功能的精简,通过软件工程的研究方法,结合当......
  • 【拯救大学生毕业设计】基于springboot的月度员工绩效考核管理系统
    本项目开发文档(带文档lw万字以上)已上传审核中。源码亲测可用!!!点击文末名片获取获取全部源码以及个性化部署定制服务摘 要科学时代的发展改变了人类的生活,促使网络与计算机技术深入人类的各个角落,得以普及到人类的具体生活中,为人类的时代文明掀开新的篇章。本系统为月......
  • Day31--构造器详解
    Day31--构造器详解使用new关键字创建对象。使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:必须和类的名字相同;\2.......
  • TCP Fast Open 详解
    TCPFastOpen详解TCPFastOpen(TFO)是对传输控制协议(TCP)的一种扩展,用于加快两个端点之间连续TCP连接的打开速度。以下是关于TCPFASTOPEN的详细介绍:产生背景和目的:在传统的TCP三次握手过程中,建立连接需要一个完整的往返时间(RoundTripTime,RTT),这对于一些对延迟敏感......