Воскресенье, 05.05.2024, 07:16
Приветствую Вас Guest Member

Windows XP / 7 .

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
Форум <<Помощь по компьютерам>> » Delphi программирование » БД в Delphi » Как "в ручную" правильно организовать ведение истории в баз (Как "в ручную" правильно организовать ведение истории в баз)
Как "в ручную" правильно организовать ведение истории в баз
AdminДата: Четверг, 23.09.2010, 15:59 | Сообщение # 1
Forum member
Группа: Admin
Зарегистрирован: 24.02.2010
Откуда: Цюрупинск
Пол: Мужчина
Сообщений: 691
Статус: Вне сайта
Как "в ручную" правильно организовать ведение истории в базе данных

user1:

Добрый день, уважаемые форумчане. Может быть подобная тема и была, - честно искал, но найти не смог.

Вопрос.
Есть база данных Access в связке с Дельфи. Мне нужно организовать историю:
- ввода всех элементов - текстовые поля, ричэдиты, списки и прочее
- изменение столбцов таблиц базы данных с указанием времени и кто и когда и что делал
- история работы пользователей.

Я вижу это пока так.
История ввода элементов
для однотипных элементов завести таблицу, типа
THistEdit (HEid / HEDatetimestart / HENameEdit / HEUser / HEText / HEComment )
То есть хранить время, имя элемента, пользователя и значения введенного поля, а потом выбирать по запросу.

История работы пользователей - похожая таблица, как для элементов - только для пользователя: "дата, когда вошел, вышел и что-нибудь еще."

А вот с историей изменения столбцов в таблицах сложнее. Я думаю сделать так
- код
- имя таблицы
- имя стобца
- дата время изменения
- значение
А потом делать выборку по паре таблца столбец.

Второй вариант. Создавать еще одну таблицу, например, "Работники" - "ИстоиряРаботники" и в нее писать все изменения, по приведенному выше типу только по таблице "Работники". То есть - множить число таблиц истории соответственно числу рабочих таблиц.

Эффективно ли это? Какие еще есть варианты? Подскажите, возможно есть какие-нибудь стандартные средства, А я не знаю?



 
AdminДата: Четверг, 23.09.2010, 15:59 | Сообщение # 2
Forum member
Группа: Admin
Зарегистрирован: 24.02.2010
Откуда: Цюрупинск
Пол: Мужчина
Сообщений: 691
Статус: Вне сайта
user2:

Если сделать одну таблицу изменений в БД и повесить заполнение на триггеры, то со временем таблица может разрастись до неимоверных размеров. Если создавать для каждой таблицы еще одну таблицу дублер, то изменении структуры таблицы можно забыть изменить структуру таблицы дублера. В первом случае сразу видно что изменили. Во втором на определенный момент времени легче получить полную информацию. Вообщем наверно надо смотреть как часто меняются данные, структура и тд и тп. Я б наверно сделал одну, но с возможностью переносить "старые" данные в архивную таблицу.



 
Форум <<Помощь по компьютерам>> » Delphi программирование » БД в Delphi » Как "в ручную" правильно организовать ведение истории в баз (Как "в ручную" правильно организовать ведение истории в баз)
  • Страница 1 из 1
  • 1
Поиск: