Запись записей - как управлять этим? - PullRequest
0 голосов
/ 17 октября 2011

Я разработал веб-сайт для ввода данных, который позволяет сотрудникам добавлять записи в нашу систему.Сотрудники могут добавлять тысячи записей в нашу базу данных, однако мне нужен способ отслеживать, какие сотрудники вставляют данные в запись, когда они закончили запись, а кто проверяет записи.(Примечание: это не система аудита)

Мне нужна хорошая техника управления, как это можно сделать?

Вот несколько команд, о которых я мог подумать:

  1. Команда ввода данных

  2. Команда чтения доказательства

  3. Команда администратора

КогдаПерсонал (Команда ввода данных) завершил запись - он / она затем нажмет на кнопку Завершить.Затем каким-то образом он должен автоматически назначить «Команду чтения корректуры».

Запись должна проверяться дважды от группы чтения корректуры.Если StaffB закончит чтение корректуры, тогда другой член группы по проверке корректности должен проверить это снова.

Когда чтение доказательства будет выполнено, команда администратора назначит «Запись завершена» или что-то в этом роде.

Через несколько месяцев запись может потребоваться обновить (орфографическая ошибка, изменение цены,и т. д.) - Администратор может назначить запись команде ввода данных.

Вот что я попробовал:

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 Ответ

1 голос
/ 17 октября 2011

Вы можете сделать что-то вроде структуры ниже.

Таблицы records & staffs от вашего вопроса (в значительной степени). Я добавил следующее на основе того, что вы описали:

team -> содержит все команды

teamStaff -> содержит сведения о том, какие сотрудники входят в какую команду

recordStatusType -> содержит все состояния, в которых может быть запись

teamRecordStatusType -> содержит информацию о том, какие команды (и в зависимости от того, какие сотрудники) имеют право обрабатывать записи, в каком состоянии, т. Е. Группе ввода данных разрешено обрабатывать записи в статусах «Ввод данных» и «Ввод данных завершен», но не более того. Здесь можно настроить группу администраторов со всеми типами состояний, чтобы они могли «видеть» все записи независимо от того, в каком состоянии они находятся.

recordCurrentStatus -> текущий статус данной записи вместе с тем, кто сделал последнее изменение и когда это изменение было сделано. Это должно позволить вам запретить любому пользователю в той же команде, например, Команда по чтению проб, которая уже завершила первое чтение корректуры и должна передать ее другому члену команды. Эта таблица также позволяет администратору изменять статус данной записи и присваивать ей статус ad hoc.

Надеюсь, это поможет!

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 team;
+----+---------------------+
| id | team                |
+----+---------------------+
|  1 | Data Entry Team     |
|  2 | Proof Reading Team  | 
|  3 | Admin Team          | 
+----+---------------------+

mysql> select * from staffs;
+----+-----------+-----------+
| id | username  | password  |
+----+-----------+-----------+
|  1 | admin1    | admin1    |
|  2 | DEntryA   | DEntryA   |
|  3 | DEntryB   | DEntryB   |
|  4 | PReadingA | PReadingA |
|  5 | PReadingB | PReadingB |
+----+-----------+-----------+

mysql> select * from teamStaff;
+----+---------+--------+
| id | staffId | teamId |
+----+---------+--------+
|  1 |    1    |   3    |
|  2 |    2    |   1    |
+----+------------------+

mysql> select * from recordStatusType;
+----+---------------------------+
| id | statusType                |
+----+---------------------------+
|  1 | Data Entry Processing     |
|  2 | Data Entry Complete       |
|  3 | Ready for Proof Reading 1 | 
|  4 | Proof Reading 1 Complete  |   
|  5 | Ready for Proof Reading 2 | 
|  6 | Proof Reading 2 Complete  | 
+----+---------------------------+

mysql> select * from teamRecordStatusType;
+----+---------+-------------+
| id | teamId | statusTypeId |
+----+---------+-------------+
|  1 |    1    |     1       |
|  2 |    1    |     2       |
|  3 |    2    |     3       | 
|  4 |    2    |     4       | 
|  5 |    2    |     5       |
|  6 |    2    |     6       |
+----+-----------------------+

mysql> select * from recordCurrentStatus;
+----+-----------+--------------+---------------------+-----------------------+
| id | recordsId | statusTypeId | lastModified        | lastModifiedByStaffId |
+----+-----------+--------------+---------------------+-----------------------+
|  1 |    1      |     1        | 2011-10-17 10:24:12 |          1            |
|  2 |    1      |     2        | 2011-10-17 08:24:12 |          1            |
+----+--------------------------+---------------------+-----------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...