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]   

> Без описания
pantela
Отправлено: 07 Мая, 2014 - 12:14:21
Post Id



Частый посетитель


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


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




Делается инет. магазин, стоит задача для пользователей сделать Финансовый Баланс.

Попробую описать логику:
Пользователь пополняет счёт, далее может оплатить за продукт. Продукт имеет определённую цену.

Ну я понимаю что можно создать таблицу напр. tansfers и в ней хранить всё пополненные и оплаченные операции.

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

Ещё думал сделать отл. поле в таблице пользователей, и там хранить текущий баланс, т.е. при операции что бы 1 раз посчиталось бы и там хранилось бы (т.е. как дельта поле)...

Что сможете посоветовать?
 
 Top
IGORtrue
Отправлено: 07 Мая, 2014 - 12:19:41
Post Id



Частый гость


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


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




Мне кажется нужно отдельное поле для текущего баланса, а также таблица для хранения всех операций, всех пользователей.
 
 Top
caballero
Отправлено: 07 Мая, 2014 - 13:17:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




финансовый баланс высчитывается не каждую секунду
пересчитывайте таблицу и все дела


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Stierus Супермодератор
Отправлено: 07 Мая, 2014 - 13:51:48
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




у пользователя есть счет (один или несколько - не важно), у этого счета есть текущий баланс и история транзакций .
 
My status
 Top
pantela
Отправлено: 07 Мая, 2014 - 19:32:34
Post Id



Частый посетитель


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


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




caballero пишет:
финансовый баланс высчитывается не каждую секунду
пересчитывайте таблицу и все дела

Ну смотря какая задача, напр. тот же отсчёт финансовый мне надо выводить в jqGrid, где идёт активная работа запросов

IGORtrue пишет:
Мне кажется нужно отдельное поле для текущего баланса, а также таблица для хранения всех операций, всех пользователей.

Stierus пишет:
у пользователя есть счет (один или несколько - не важно), у этого счета есть текущий баланс и история транзакций .

Счёт один. т.е. делать поле где статический при каждой операции баланс будет обновляться, при этом для вывода текушего баланса не потребуется перечитывать записи и сразу выводить да?
А если несколько счётов надо что бы было, тогда создать ещё таблицу счётов и там перечислять счета и связать всё это JOIN-ом?
 
 Top
caballero
Отправлено: 07 Мая, 2014 - 20:36:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Ну смотря какая задача, напр. тот же отсчёт финансовый мне надо выводить в jqGrid, где идёт активная работа запросов

шо сие такое "активная работа запросов" и какая разница куда выводить?
попробуйте все таки прочитать то что вам пишут


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
pantela
Отправлено: 08 Мая, 2014 - 10:00:02
Post Id



Частый посетитель


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


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




Я прочитал и вроде ваше мнение одно из описаных моих вариантов.

caballero пишет:
шо сие такое "активная работа запросов" и какая разница куда выводить?
jqGrid это таблица, в которой постоянно работают несколько пользователей, и при работе происходит действия которые выполняют запросы в БД (это я имел под "активная работа запросов")
 
 Top
Stierus Супермодератор
Отправлено: 08 Мая, 2014 - 12:32:47
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




Цитата:
Счёт один. т.е. делать поле где статический при каждой операции баланс будет обновляться, при этом для вывода текушего баланса не потребуется перечитывать записи и сразу выводить да?
А если несколько счётов надо что бы было, тогда создать ещё таблицу счётов и там перечислять счета и связать всё это JOIN-ом?


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

У счета есть текущий баланс - по сути это горячий кэш агрегации всех транзакций по нему. Изначально счет создается с нулевым балансом, потом к нему привязываются транзакции, при каждой привязке транзакции ты меняешь значение текущего баланса. Итого таблиц у тебя 3: пользователь, счет, транзакция по счету + таблицы связей
(Добавление)
думаю, не стоит говорить, что все операции с счетами и платежами должны еще и логироваться и проходить внутри транзакций бд?
 
My status
 Top
caballero
Отправлено: 08 Мая, 2014 - 14:00:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




еще раз для тех кто в танке

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

достаточно просто пересчитывать обороты.

Цитата:
qGrid это таблица, в которой постоянно работают несколько пользователей, и при работе происходит действия которые выполняют запросы в БД (это я имел под "активная работа запросов")

это никак не относится к сути вопроса.
Каким чудом в jqGrid могут работать несколько пользователей ОДНОВРЕМЕННО оставляю тем у кого хорошо развита фантазия.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
pantela
Отправлено: 13 Мая, 2014 - 20:02:17
Post Id



Частый посетитель


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


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




caballero пишет:
Каким чудом в jqGrid могут работать несколько пользователей ОДНОВРЕМЕННО

несколкьо пользователей работаю с одной таблицей и возможно с одной записей...
 
 Top
caballero
Отправлено: 13 Мая, 2014 - 21:34:55
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
несколкьо пользователей работаю с одной таблицей и возможно с одной записей...

Вася, jqGrid - клиентский компонент в браузере. как с ним могут работать несколько человек? перехватывая друг у друга клавиатуру?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
OrmaJever Модератор
Отправлено: 14 Мая, 2014 - 17:01:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




caballero
caballero пишет:
pantela пишет:
несколкьо пользователей работаю с одной таблицей и возможно с одной записей...


Вася, jqGrid - клиентский компонент в браузере. как с ним могут работать несколько человек? перехватывая друг у друга клавиатуру?

а речь шла о клиентском компоненте? несколько пользователей одновременно работают с одной таблицей в бд, один записал второй прочитал, так сложно понять что речь об этом?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 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