Отслеживание ввода данных (проектирование базы данных) - PullRequest
0 голосов
/ 28 сентября 2011

Я разработал веб-сайт (PHP), который позволяет сотрудникам добавлять записи в нашу систему.

Сотрудники будут добавлять тысячи записей в нашу базу данных.

Мне нужен способ отслеживать, какая запись была сделана и процесс / статус записи.

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

  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 голос
/ 28 сентября 2011

я думаю, дизайн это хорошо сделано.но, возможно, вы захотите разделить группу на таблицу групп и record_status на таблицу состояния.Если вы храните много записей, вы бы хранили много бесполезной информации, по крайней мере, создайте тип enum для поля record_status и поля группы

таблица: группы id - имя 1 - админ2 - data_entry3 - корректура...

таблица: статус id - имя 1 - data_entry_processing...

и если вы хотите, чтобы пользователи одновременно входили в разные группы, вы можете создать таблицу users_group

table: user_groups group_id - user_id 1 - 12 - 11 - 43 - 44 - 4....

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

...