jsb:zhihuidou
智慧豆工具设计文档
1. 一些想法:
我们每个月记录智慧豆,应该不用那么精细化,只是为了方便以后查询用,同学也不会“豆豆必较”。
按照现在的理解,每条记录记一个总数,然后附加一个说明,应该就 可以满足现有的需求。 例如:
记录 | 姓名 | 豆豆数 | 原因 | 时间 |
---|---|---|---|---|
1 | 秀秀 | 120 | 金刚村村长 | 202405 |
2 | 秀秀 | 7 | 福田区7天日行一善 | 202405 |
3 | haitao | 80 | data analyze | 202406 |
4 | … | … | … | … |
有两个方案可以考虑,是不同的方向。
- 尽量把字段设置的细一点,例如有许多的 job_id,每个不同的板块、不同的角色,会形成不同的 Job_id 。每个 Job_id 都有标注的智慧豆数。每次登记智慧豆,都要有对应的 job_id,如果是新增的工作内容,就由管理员添加 Job_id. 好处是各种细节统计查询很方便,坏处是有点复杂。
- 每次只用记录基本的信息,就是姓名+豆豆数,然后做一个简单的说明就好。这种方式的好处就是简单,不足是,以后细节统计查询不方便。
或者两者可以组合,对于那些固定的任务角色,我们可以设置 Job_id, 那些比较复杂的逻辑,我们就直接登记一个姓名/豆豆数/人工说明 就好。
我想的是,可以分成两个角色:
- 申请智慧豆。相当于录入的过程,提供工具,由各个板块自己提交申请。
- 审核智慧豆。爱豆组看见的是各个板块提交上来的智慧豆申请,然后核实后就点击动过。有问题就做补充。
类似,公司里,每个员工出差回来要提交报销单,自己填写花了多少钱,每一项花费的明细等,提交后,财务做审批,审批通过了,就把报销款打给员工。
咱们可以在每个板块培养一个专门申报智慧豆的同学,通过工具填写申请,提交。爱豆组进行审核,有问题,需要告诉他如何重新提交等等。
还有自动扣智慧豆和自动增加智慧豆的功能设计。
2. 现有的智慧豆如何录入?
已经存在的智慧豆,如果录入到系统?
大体思路:
- 之前的不用录入那么细致,暂时只用按月录入就好。把一个月的信息,按照一条记录录入。
- 如果以后有具体需求,也有时间和人力,可以把之前的细节的录入进去。因此问题也不大。
- 之后的数据,都按照新要求录入。
3. 设计想法:
有几个工具需要设计:
- 智慧豆申请(录入工具)
- 智慧豆审核
- 智慧豆查询
涉及到权限管理,
- 所有人默认只能查询自己的智慧豆
- 爱豆组同学有审核权限,有增加 Job_id 的权限
- 板块数据服务同学有申请权限
- 管理员Admin,有所有权限,分配用户。
- 数据分析团队,有查询权限。
前期设计和开发,可能不用用户权限,安全性方面,不用过多考虑。实现基本功能,功能没问题了,大家都觉得挺好用的,再把用户权限,用户管理加上。
智慧豆查询部分,有多种需求:
- 个人查询自己的智慧豆情况
- 数据分析组,根据各种组合条件查询智慧豆,
- 按照月汇总
- 本月智慧豆排序
- 按照>100 智慧豆的过滤
- ……
- 每次查询可以下载,或者生成 pdf 文件。优先级不高
- 还有别的查询需求吗?
智慧豆审核方面,有写细节:
- 可以修改每一条记录
- 可以退回申请
- 可以通过申请
- 可以添加某个 job_id
- 可以删除某个申请
- 所有操作,需要有后台记录。 ### 4 chatGPT 根据文档的设计:
- snippet.sql
CREATE TABLE Users ( user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password_hash VARCHAR(255) NOT NULL, name VARCHAR(50) NOT NULL, ROLE VARCHAR(20) NOT NULL, bean_total INT DEFAULT 0, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); INSERT INTO Users (username, password_hash, name, ROLE, bean_total) VALUES ('admin', '$5$j0XLA1mfecbiZlcX$wVFoj7F1fbbxoSWOfwnxZkVcTW/.yUj5WZzhyt/SmK0', 'Admin User', 'admin', 0);
- snippet.sql
CREATE TABLE Jobs ( job_id INT AUTO_INCREMENT PRIMARY KEY, job_name VARCHAR(50) NOT NULL, default_bean INT NOT NULL, description TEXT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
- snippet.sql
CREATE TABLE WisdomBeanRecords ( record_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, bean_num INT NOT NULL, description TEXT, STATUS VARCHAR(20) NOT NULL, job_id INT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES Users(user_id), FOREIGN KEY (job_id) REFERENCES Jobs(job_id) );
- snippet.sql
CREATE TABLE AutoBeanAdjustments ( adjustment_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, bean_num INT NOT NULL, reason TEXT, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES Users(user_id) );
jsb/zhihuidou.txt · 最后更改: 2024/06/26 16:46 由 admin