# 数据库设计 ## 人员信息 *user | id | account | passwd | group_id | status | is_caption | data | | :----: | :-----: | :----: | :------: | :------: | :--------: | :------: | | 人员ID | 账户名 | 密码 | 群组 | 用户状态 | 队长 | 其他数据 | + **人员ID**:人员唯一ID + **账户名**:账户名称 + **密码**:密码哈希值 + **群组**:人员所属群组 + **用户状态**:用户当前情况,`-1` = 封禁、 `0` = 普通成员、`1` = 管理员 + **队长**:是否为队长,`0` = 普通队员、`1` = 队长 + **其他数据**:包括名字、邮箱、电话号码等(数组) ## 群组信息 *group* | id | name | remark | | :----: | :--: | :----: | | 群组ID | 名称 | 备注 | + **群组ID**:群组唯一ID + **名称**:群组名称 + **备注**:备注信息 ### 预备记录 + 机械组 + 电控组 + 视觉组 + 信息组 + 运营组 + 宣传组 + 项目组 + 项管组 + 老队员 ### Feature 独立出人员管理部分,用于扩充和完善当前统一认证系统,即兼具认证与人员管理功能,同时直接与物资管理、财务管理绑定,间接接入Gitea、Drone、Jira、Confluence、Nextcloud等服务。 ## 物资分类 + A类 - **物品**:多次使用,与时间无关,如深度相机; + B类 - **耗材**:一次性使用,与时间无关,如3D打印材料; + C类 - **时耗品**:有使用时间限制,如服务器; ## A - 物品 ### 种类记录 *a_kind* | id | name | owner | remark | | :----: | :--: | :---: | :----: | | 种类ID | 名称 | 归属 | 备注 | + **种类ID**:物品种类唯一ID + **名称**:物品名称 + **归属**:所属群组 + **备注**:备注信息 ### 物品记录 *a_status* | id | kind_id | time | purchaser | principal | status | is_approve | remark | | :----: | :-----: | :------: | :-------: | :-------: | :------: | :--------: | :----: | | 物品ID | 种类ID | 入库时间 | 入库人员 | 负责人 | 当前状态 | 审批需求 | 备注 | + **物品ID**:物品唯一ID + **种类ID**:所属种类ID + **入库时间**:购入时间 + **入库人员**:购入人员 + **负责人**:物品负责人 + **当前状态**:物品当前状态,`-3` = 损坏、`-2` = 锁定、`-1` = 在库、`0` = 审批中、`>0` = 借出记录ID + **审批需求**:物品借出是否需要审批,`0` = 无需审批、`>0` = 需要审批 + **备注**:备注信息 ### 借出记录 *a_lend* | id | time | lender | approver | method | remark | | :----: | :------: | :------: | :------: | :------: | :----: | | 记录ID | 借出时间 | 借出人员 | 审批人 | 借出方式 | 备注 | + **记录ID**:借出记录的唯一ID + **借出时间**:借出或移交时间 + **借出人员**:借出或移交后物品所在人员 + **审批人**:审批人员 + **借出方式**:物品借出方式,`0` = 库存借出、`>0` = 移交借出(借出ID) + **备注**:备注信息 ### 审批记录 *a_approve* | id | submitter | time | approver | ignore | remark | | :----: | :-------: | :------: | :--------: | :--------: | :----: | | 物品ID | 提交人员 | 提交时间 | 目标审批人 | 审批人忽略 | 备注 | + **物品ID**:请求借出或移交的物品ID + **提交人员**:申请审批的人员 + **提交时间**:申请提交的时间 + **目标审批人**:标记请求目标人员(数组) + **审批人忽略**:标记目标人员忽略请求(数组) + **备注**:备注信息 ### 事件 + **购入** + **提交审批** + **审批通过** + **审批拒绝** + **借出** + **损坏** ## B - 耗材 ### 耗材记录 *b_status* | id | name | num | owner | principal | is_approve | remark | | :----: | :--: | :--: | :---: | :-------: | :--------: | :----: | | 耗材ID | 名称 | 数量 | 归属 | 负责人 | 审批需求 | 备注 | + **耗材ID**:耗材唯一ID + **名称**:耗材名称 + **数量**:耗材数量 + **归属**:所属群组 + **负责人**:耗材负责人 + **审批需求**:物品借出是否需要审批,`0` = 无需审批、`<>0` = 需要审批 + **备注**:备注信息 ### 审批记录 *b_approve* | id | submitter | time | approver | ignore | remark | | :----: | :-------: | :------: | :--------: | :--------: | :----: | | 耗材ID | 提交人员 | 提交时间 | 目标审批人 | 审批人忽略 | 备注 | + **耗材ID**:请求借出的物品ID + **提交人员**:申请审批的人员 + **提交时间**:申请提交的时间 + **目标审批人**:标记请求目标人员(数组) + **审批人忽略**:标记目标人员忽略请求(数组) + **备注**:备注信息 ### 事件 + **购入** + **使用耗材** + **丢失耗材** ## C - 时耗品 ### 时耗品状态 *c_status* | id | name | owner | principal | end_time | remark | | :------: | :--: | :---: | :-------: | :------: | :----: | | 时耗品ID | 名称 | 归属 | 负责人 | 到期时间 | 备注 | + **时耗品ID**:时耗品唯一ID + **名称**:时耗品名称 + **归属**:时耗品所属群组 + **负责人**:时耗品负责人 + **到期时间**:时耗品到期时间 + **备注**:备注信息 ### 事件 + **购入** + **续费** + **到期**(自动记录)