
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.03.2011, 23:47
|
|||
|---|---|---|---|
|
|||
Контроль в БД за тем, кто внес данные |
|||
|
#18+
Все привет. Есть база на с таблицами, в которых хранятся данные о платежках и сопутствующих данных о контрагентах, планах по статье расходов и т.д. Ест пользователи-операторы, которые вносят данные через форму в MS ACCESS. Хотелось бы знать кто по какой платежке внес данные, то есть за кем та или иная запись в таблице? Я собираюсь действовать стандартно: выдать каждому пользователю Login - Password. Когда пользователь заполнил форму данными из платежки и нажал сохранить, текущее время и его login попадали с другими данными бы в таблицу в соответствующие поля - Имя_таблицы {id, сумма, ..., user, date_time}. Мне не нравиться, что к каждой таблице придется добавить два дополнительных поля. Вопрос: кто-нибудь решал такие проблемы? Есть встроенные функции или инструменты, чтобы узнать кто какие изменения внес? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2011, 00:28
|
|||
|---|---|---|---|
Контроль в БД за тем, кто внес данные |
|||
|
#18+
АндрейCA, автор...кто по какой платежке внес данные... а еще - с какого компа в MS ACCESS CurrentUser(), Environ("COMPUTERNAME") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2011, 00:46
|
|||
|---|---|---|---|
Контроль в БД за тем, кто внес данные |
|||
|
#18+
АндрейCAМне не нравиться, что к каждой таблице придется добавить два дополнительных поля. То-есть то, что в каждой таблице скорее всего есть id - не смущает?! :) "Не нравится" - не аргумент, оформляйте "претензию" аргументированней. АндрейCAВопрос: кто-нибудь решал такие проблемы? Думаю, практически любой, столкнувшийся с разработкой БД на реальном предприятии и работой более одного пользователя :). С ходу есть 4 варианта (и комбинации этих вариантов). 1. Озвученный вами. Подходит практически для любой БД и СУБД. Затраты - внесение изменений в логику (приложение или триггера) + модификация всех таблиц. "+" - очень легко извлечь в SQL (а значит и на уровне сервера) эту информация. Возможно для Access это не аргумент. 2. "На отдельную проблему - отдельная таблица" - т.е. добавляется одна таблица с полями ("в таблице", "запись с первичным ключом", "добавлена/удалена/модифицирована"). Подходит практически для любой БД и СУБД. Затраты - внесение изменений в логику (приложение или триггера) - не требуется модификация всех таблиц. "-" - для извлечения используется или клиент, или динамический SQL на уровне сервера. Возможно для Access это не аргумент. 3. "Таблицы, для которых нужен контроль модификации - есть "наследники" таблицы с названием <сущности>, поэтому поля "пользователь/датавремя" можно добавить только в таблицу "сущности". Зависит от конкретной БД. Если БД была так спроектирована, или только проектируется и для этой схемы нет отрицательных аргументов - отличный вариант. 4. Использование журналов СУБД - очень сильно зависит от практики резервного копирования журналов, длительности хранения резервных копий, конкретной СУБД. Обычно очень неудобен - поэтому реально используется в критических случаях. АндрейCAЕсть встроенные функции или инструменты, чтобы узнать кто какие изменения внес? Это случай 4. Про встроенные функции или инструменты можно говорить применительно к конкретной СУБД. У вас Access - но вопрос задан в форуме "проектирование БД". Поэтому эту часть вопроса стоит продублировать в форуме Access (хотя, имхо, Access этим не блещет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2011, 00:50
|
|||
|---|---|---|---|
Контроль в БД за тем, кто внес данные |
|||
|
#18+
АнатоЛой3. "Таблицы, для которых нужен контроль модификации - есть "наследники" таблицы с названием <сущности> Пардон, несколько косноязычно выразился. Хотел так: "Таблицы, для которых нужен контроль модификации, являются "наследники" таблицы с названием <сущности>. Т.е. таблица "сущности" имеет первичный ключ, у всех остальных таблиц их первичные ключи совпадают с их внешними ключами на таблицу "сущности". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1542263]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
3ms |
| others: | 249ms |
| total: | 496ms |

| 0 / 0 |
