powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Требуется спроектировать БД с логированием внесённых данных
7 сообщений из 7, страница 1 из 1
Требуется спроектировать БД с логированием внесённых данных
    #37936821
Victor256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Пишу бух. программу на php+mysql. Есть такая таблица:

она заполняется и считается раз в месяц для каждого из двух десятков отделов. Желтые поля заполняет начальник отдела, голубые бухгалтер, зелёные считаются программой на основании заполненных данных. Требуется каким-то образом фиксировать все вносимые людьми данные, и запоминать историю ввода.

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


Исходные данные:
1) таблица юзеров, которые вводят данные (id,ФИО);
2) таблица отделов (id, название);
3) таблица сотрудников (id, ФИО);
4) таблица привязки сотрудников к отделам (id сотрудника, id отдела). Каждый сотрудник может числится в нескольких отделах.
5) таблицы месячных отчетов одинаковы для всех отделов, по идее это даёт возможность свести все отделы в одну таблицу БД и разделять их по полям id_отдела и даты.

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

2) структура таблиц(ы) для фиксации внесённых людьми данных, тут пока никаких идей.
Буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37938010
iDimash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256,

Я в проектировании БД не ас но попробую предложить свой упрощенный вариант:

users ( id , name)

employee ( id , name, ...) Таблица сотрудников

tablebuh ( id , IDemployee , date, field1, field2, field3) - Твоя таблица(field1 - для бухгалтера, field2 - для начальника, field3 - рассчитывается)

field1History ( id , datetime, IDtsblebuh , val, IDuser) - Таблица истории изменений для field1

field2History ( id , datetime, IDtsblebuh , val, IDuser) - Таблица истории изменений для field2, при правке поля field2, триггером заносить сюда дату, время, предыдущего значения.

Надеюсь понятно представил.
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37938095
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256,

Для бухучета возьмите ту же 1С и непарьтесь.
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37938562
Victor256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iDimash , структура нормальная, только в триггер ведь не передашь id из таблицы users. Сделаю это в php.

Злой Бобр
авторДля бухучета возьмите ту же 1С и непарьтесь.
если бы знал 1с, я бы и не парился
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37944422
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256 iDimash , структура нормальная, только в триггер ведь не передашь id из таблицы users. Сделаю это в php.

Злой Бобр
авторДля бухучета возьмите ту же 1С и непарьтесь.
если бы знал 1с, я бы и не парился

Зачем ее знать, ее надо брать ;-)

А так, Вы пытаетесь создать свою транзакционную модель.
Можно, но может быть лучше посмотреть, что дадут стандартные средства MySQL.
По моему там можно настроить логирование действий.
Вам останется только научиться парсить логи.
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37944460
Victor256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulЗачем ее знать, ее надо брать ;-)

А так, Вы пытаетесь создать свою транзакционную модель.
Можно, но может быть лучше посмотреть, что дадут стандартные средства MySQL.
По моему там можно настроить логирование действий.
Вам останется только научиться парсить логи.
та нет, до транзакционной модели ей далеко :)

логи мускула мне не помогут, ведь программа работает от одного единственного пользователя, а разделение доступа происходит на программном уровне.
...
Рейтинг: 0 / 0
Требуется спроектировать БД с логированием внесённых данных
    #37945015
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256та нет, до транзакционной модели ей далеко :)
логи мускула мне не помогут, ведь программа работает от одного единственного пользователя, а разделение доступа происходит на программном уровне.

Ну надо чтобы работала от разных пользователей, в зависимости от роли ;-)

Это я к тому, что "лучше день потерять, потом за пять минут долететь".
Лучше посидеть подумать, как спроектировать систему, чтобы пользоваться стандартными средствами, чем самому "изобретать велосипед".

<:o)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Требуется спроектировать БД с логированием внесённых данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]