阅文批示与资产管理系统数据库设计详解
项目背景:为了提升文件处理及资产管理的效率,该系统设计了完善的数据库结构,以满足不同角色的需求。通过记录文件的审批、传阅、资产交易等过程,实现了文件和资产的全生命周期管理。
数据库表结构概述
系统数据库包含用户、文件、资产、通知等多个功能模块,具体设计如下:
- 用户表 (user)
- 角色表 (role)
- 用户角色表 (user_role)
- 部门表 (department)
- 文件表 (document)
- 文件审批表 (document_approval)
- 文件批示表 (document_instruction)
- 文件传阅表 (document_circulation)
- 文件退回记录表 (document_return)
- 资产表 (asset)
- 资产交易表 (asset_transactions)
- 附件表 (attachment)
- 通知表 (notification)
- 系统日志表 (system_log)
- 文件阅读日志表 (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_circulation
、document_return
表存在一对多关系,传阅记录文件在不同用户间的传递过程,退回表记录文件的退回原因和状态。 -
资产与交易:
asset
表与asset_transactions
表存在一对多关系。资产交易表记录每个资产的分配、移交、报废等操作。 -
附件与文件:附件表(attachment)与文件表(document)一对多关联,每个文件可以有多个附件,用于记录上传的文件或图片。
-
通知与用户、文件:
notification
表记录发送给用户的通知信息,关联user
表和document
表,提醒用户关于文件的审批状态或新消息。
总结
"阅文批示与资产管理系统"的数据库设计通过合理的表结构和外键关系,确保了系统中数据的完整性与一致性。通过详细的审批、批示、传阅及日志记录功能,系统能够有效地支持文件与资产的全生命周期管理。
标签:文件,管理系统,阅文,外键,ID,详解,user,document,id From: https://www.cnblogs.com/wyuuuuu/p/18534116