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

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

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

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


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

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

2) структура таблиц(ы) для фиксации внесённых людьми данных, тут пока никаких идей.
Буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
31.08.2012, 00:19
    #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
31.08.2012, 04:44
    #37938095
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется спроектировать БД с логированием внесённых данных
Victor256,

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

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

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

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

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

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

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

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

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

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


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