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]   

> Без описания
gheka
Отправлено: 02 Февраля, 2012 - 12:32:32
Post Id



Частый гость


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


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




Здравствуйте есть вопрос к профессионалам которые имели дело с вм магазином.

Я пишу скрипт WM магазина.
И у меня такой вопрос как организовать историю переводов, покупок, и вообще всей истории связанные с денежным оборотом для админа и продавцов, и т.д

У меня есть таблица где записывается всё касаемо покупок товаров тоесть:
id, id_goods, id_seller , id_agent, id_buy, wmid, purse, mail, key, money, currency, dat, status

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

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

тип операции, название, дата сумма, комиссия, на счет/со счета, доступны после
а также.

история по операции по товару виде,
номер счёта:
покупатель: WMID:
счёт выписан:
состояние счёта: счёт оплачен и т.д
оплата подтверждена:
Раздел в кантором куплен товар:
оплачено:
зачислено на счёт: (доступны для снятия после кого то числа)
товар:
 
 Top
Okula
Отправлено: 02 Февраля, 2012 - 12:35:46
Post Id



Участник


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


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




Лучше отдельные таблицы создай. Так у тебя мороки меньше будет, да и запросы к ним не так часты как к просмотру товаров, а сложные запросы к БД будут только сильнее тормозить её.
 
 Top
Zuldek
Отправлено: 02 Февраля, 2012 - 12:43:14
Post Id


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


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


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




Лично я не делал специальную таблицу в бд для хранения истории операций. Понятно что таблицы с заказами хранят даты статусы всех операций, связаны с таблицами пользователей и тд. Всю сводную историю всех операций с деньгами храню в едином лог-файле. Туда какраз и пишу, дату, айпи адреса, логины, контакты, ошибки, суммы типы операций и время. сюда же пишу все запросы серверов платежных систем о прохождении платежей и любых операций.
 
 Top
gheka
Отправлено: 02 Февраля, 2012 - 13:05:26
Post Id



Частый гость


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


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




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


Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?

(Отредактировано автором: 02 Февраля, 2012 - 13:08:01)

 
 Top
Zuldek
Отправлено: 02 Февраля, 2012 - 14:36:50
Post Id


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


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


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




gheka пишет:
Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?

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

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

(Отредактировано автором: 02 Февраля, 2012 - 14:40:31)

 
 Top
gheka
Отправлено: 02 Февраля, 2012 - 16:15:04
Post Id



Частый гость


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


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




Zuldek пишет:
gheka пишет:
Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?

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

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

Да вы правы в базе будет лучше сделать в моём случае и решил прислушаться к вашим словам и не скапливать повторяющуюся информацию и разделить на разные таблицы и вытаскивать нужные данные проверками и запросам тем более не так мого нужно будет вытаскивать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB