Авторизованные обновления базы данных - PullRequest
0 голосов
/ 30 марта 2011

Как мне спроектировать структуру базы данных так, чтобы ряд пользователей базы данных могли добавлять, обновлять и удалять записи, которые могут включать внешние ключи из некоторых таблиц базы данных, и предотвращать запуск этих изменений до тех пор, пока руководитель пользователя не разрешит их изменения, некоторые из этих изменений или отклонения этих изменений от происходящих. База данных будет в конечном итоге иметь ряд этих групп пользователей и супервизоров.

Какова лучшая методология или система для этого, в настоящее время я использую базу данных MySQL.

1 Ответ

0 голосов
/ 14 апреля 2011

Представления.

Весь доступ к "живым" данным должен быть через представления.Представления должны выбирать только те строки, которые были «авторизованы».Вы захотите управлять разрешениями (операторы SQL GRANT и REVOKE), чтобы код приложения не мог обойти представления, переходя непосредственно к таблицам.

Это может быть неочевидно, но это означает, что весь пользовательский интерфейсКод должен идти и к представлениям.Например, большинство пользовательских интерфейсов облегчит бремя выбора правильного внешнего ключа путем загрузки поля со списком или списка, появления модального диалога или чего-то подобного.Эти элементы интерфейса также должны получать свои данные из представлений «разрешенных» строк.

...