数据输入跟踪(数据库设计)

时间:2011-09-28 12:45:02

标签: mysql database database-design project-management

我开发了一个网站(PHP),允许员工在我们的系统上添加记录。

员工将在我们的数据库中添加数千条记录。

我需要一种方法来跟踪已完成的记录和记录的过程/状态。

这里有一些我能想到的团队:

  1. 数据录入小组

  2. 校对阅读团队

  3. 管理团队

  4. 当员工(数据输入团队)完成记录后,他/她将点击“完成”按钮。然后它应该以某种方式自动配合“证明阅读团队”。

    记录需要从校对阅读小组检查两次。如果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   |
    +----+------------+-----------+------------------------+
    

    有没有其他更好的数据库设计解决方案?

1 个答案:

答案 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
....

希望这有帮助