Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кошелек пользователя на сайте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Vaganec Trosti
Отправлено: 02 Апреля, 2012 - 08:23:06
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Подскажите как правильней спроектировать кошелек на сайте.
Сейчас пока сделана таблица "Баланс", куда записываются приходы и расходы.
И получается итоговый остаток - получается каждый раз полной выборкой из таблица. Все приходы минус все расходы.
Так удобно что некий приход или расход можно отменить.
Но сейчас стоит вопрос о дальнейшей автоматизации этого процесса и плюс подключения платежной системы(pay2pay).
Вот я думаю как правильней все это организовать. Как например, если кто занимается, сделано в популярных движках?
Спасибо.
 
 Top
Zuldek
Отправлено: 02 Апреля, 2012 - 09:11:08
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




храните в отдельной таблице истории операций по кошелькам и отдельно итоговый баланс на кошельке. У вас должна быть единая итоговая сумма которая не формируется каждый раз путем вычислений всех операций с кошельком.
При добавлении средств делаете 2 действия, - пишите новую сумму в итоговый баланс и пишите в лог (в вашем случае в бд) добавляемую сумму. соответственно таблица лога будет выглядеть примерно так: id | id_юзера/id_кошелька | type_операции | sum | date

(Отредактировано автором: 02 Апреля, 2012 - 09:15:28)

 
 Top
Vaganec Trosti
Отправлено: 02 Апреля, 2012 - 10:39:07
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




а в чем явное преимущество такого дубляжа?
 
 Top
Zuldek
Отправлено: 02 Апреля, 2012 - 10:58:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Vaganec Trosti пишет:
а в чем явное преимущество такого дубляжа?

Во-первых дубляжа тут нет.
Во-вторых, вы не можете получить итоговую сумму баланса на кошельке пока не просчитаете историю всех его операций. Чем больше история операций (наприме, год) тем дольше будет этот процесс. Когда у вас есть одно значение баланса, то все проще.

Допустим у вас будет единый модуль по управлению кошельками/юзерами. Чтобы выстроить в нем суммы баланса вам для каждого кошелька придется пересчитать всю историю операций с ним: приложение будет сильно нагружать бд. Пользователь, обновляя страницу с профилем каждый раз будет заставлять сервер пересчитывать всю историю операций с его кошельком за 5 лет, чтобы получить баланс.

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

(Отредактировано автором: 02 Апреля, 2012 - 11:00:53)

 
 Top
Vaganec Trosti
Отправлено: 02 Апреля, 2012 - 11:55:48
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




понятно. спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB