我开发了一个网站(PHP),允许员工在我们的系统上添加记录。
员工将在我们的数据库中添加数千条记录。
我需要一种方法来跟踪已完成的记录和记录的过程/状态。
这里有一些我能想到的团队:
数据录入小组
校对阅读团队
管理团队
当员工(数据输入团队)完成记录后,他/她将点击“完成”按钮。然后它应该以某种方式自动配合“证明阅读团队”。
记录需要从校对阅读小组检查两次。如果StaffB完成校对,那么校对阅读团队的另一名成员需要再次检查。
完成Proof阅读后,Admin Team将分配“Record Completed”
几个月后,记录可能需要更新(拼写错误,价格变动等) - 管理员可能会将记录分配给数据输入团队。
这是一款优秀的数据录入管理解决方案吗?如何将其置于Database Design透视图中?
这是我试过的:
mysql> select * from records;
+----+------------+----------------------+
| id | name | address |
+----+------------+----------------------+
| 1 | Bill Gates | Text 1 Text Text 1 |
| 2 | Jobs Steve | Text 2 Text 2 Text 2 |
+----+------------+----------------------+
mysql> select * from staffs;
+----+-----------+-----------+---------------+
| id | username | password | group |
+----+-----------+-----------+---------------+
| 1 | admin1 | admin1 | admin |
| 2 | DEntryA | DEntryA | data_entry |
| 3 | DEntryB | DEntryB | data_entry |
| 4 | PReadingA | PReadingA | proof_reading |
| 5 | PReadingB | PReadingB | proof_reading |
+----+-----------+-----------+---------------+
mysql> select * from data_entry;
+----+------------+-----------+------------------------+
| id | records_id | staffs_id | record_status |
+----+------------+-----------+------------------------+
| 1 | 2 | 3 | data_entry_processiing |
| 2 | 2 | 3 | data_entry_completed |
| 3 | 2 | 4 | proof_read_processing |
| 4 | 2 | 4 | proof_read_completed |
| 5 | 2 | 5 | proof_read_processing |
| 6 | 2 | 5 | proof_read_completed |
+----+------------+-----------+------------------------+
有没有其他更好的数据库设计解决方案?
答案 0 :(得分:1)
我认为设计很好。但可能是您要将组分成组表,并将record_status分成状态表。如果您要存储大量记录,则会存储大量无用的信息,至少为record_status字段和组字段创建枚举类型
表:群组
id - name
1 - admin
2 - data_entry
3 - proof_reading
...
表格:状态
id - name
1 - data_entry_processing
... ...
如果您希望用户一次位于不同的组中,则可以创建users_group表
表:user_groups
group_id - user_id
1 - 1
2 - 1
1 - 4
3 - 4
4 - 4
....
希望这有帮助