@AigizK

Как реализовать историю движения денежной массы?

Есть свое видение, как это реализовать. Но хотел услышать ваши замечания и если кто с таким сталкивался, то поделитесь опытом.

Представим что есть некий магазин, где можно купить услуги разного рода. Некий аналог AppStore.
Есть 3 вида пользователей:
1. клиент
2. компания,которая предоставляет услугу
3. исполнитель или сотрудник этой компании

Клиент покупает у компании услугу, а компания разбивает услугу на разные работы, которых делают исполнители.
Получается есть несколько видов движений денежной массы:
1. пополнение счета клиентом
2. оплата за услуги
3. полный/частичный возврат денег клиенту
4. оплата за работу сотрудника
5. вывод денег клиентом/сотрудником

Основная задача: отследить, что за деньги выводит клиент/сотрудник.
Идея была следующая:
1. любое движение фиксируем в некий базе, в которую можно только добавлять
2. вводим операции объединить и разделить. допустим клиент пополнил баланс на 100,а потом на 200 руб, и купил услугу за 250. Соответственно делаем операцию разъединения 100 на 50 и 50. Далее операция объединения 50 и 200. И оплата этой суммой за услуги.
3. любое объединение/разъединение имеет родителей, т.е. на кого то ссылается. это должны сохранить.
4. при операции оплата, происходит смена владельца этих денег

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

При таком подходе можно и программно проверить, не появились ли виртуальные деньги, в результате некого взлома сайта/БД.

Собственно вопрос прозвучал в самом начале.
  • Вопрос задан
  • 2355 просмотров
Пригласить эксперта
Ответы на вопрос 2
Spetros
@Spetros
IT-шник
ТЗ на курсовик по БД похоже.
Если же это действительно для бизнеса нужно, то скорее всего такой велосипед кто-то уже реализовал - наверняка у какого-нибудь 1с есть подходящее решение.
Ответ написан
@AigizK Автор вопроса
Да нет. В 1С в студенческие годы программировал. Так что, как работает бух.программы, я знаю. Там нет возможности отследить, откуда именно эта сумма получилась. Там грубо говоря в черный ящик кидают деньги, которые пришли в систему и оттуда вытаскивают случайном образом нужную сумму.
В какой-то степени мне нужно реализовать то, что есть у биткоина. А именно взяв любую строку из денежной массы, мог получить все связанные предыдущие операции и тем самым мог выяснить, нормальные деньги или нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы