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 :: Вопрос по созданию БД истории счетов и вм переводов
Покинул форум
Сообщений всего: 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:
счёт выписан:
состояние счёта: счёт оплачен и т.д
оплата подтверждена:
Раздел в кантором куплен товар:
оплачено:
зачислено на счёт: (доступны для снятия после кого то числа)
товар:
Okula
Отправлено: 02 Февраля, 2012 - 12:35:46
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Лучше отдельные таблицы создай. Так у тебя мороки меньше будет, да и запросы к ним не так часты как к просмотру товаров, а сложные запросы к БД будут только сильнее тормозить её.
Zuldek
Отправлено: 02 Февраля, 2012 - 12:43:14
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Лично я не делал специальную таблицу в бд для хранения истории операций. Понятно что таблицы с заказами хранят даты статусы всех операций, связаны с таблицами пользователей и тд. Всю сводную историю всех операций с деньгами храню в едином лог-файле. Туда какраз и пишу, дату, айпи адреса, логины, контакты, ошибки, суммы типы операций и время. сюда же пишу все запросы серверов платежных систем о прохождении платежей и любых операций.
gheka
Отправлено: 02 Февраля, 2012 - 13:05:26
Частый гость
Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011
Помог: 2 раз(а)
Zuldek пишет:
Лично я не делал специальную таблицу в бд для хранения истории операций. Понятно что таблицы с заказами хранят даты статусы всех операций, связаны с таблицами пользователей и тд. Всю сводную историю всех операций с деньгами храню в едином лог-файле. Туда какраз и пишу, дату, айпи адреса, логины, контакты, ошибки, суммы типы операций и время. сюда же пишу все запросы серверов платежных систем о прохождении платежей и любых операций.
Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
gheka пишет:
Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?
Все зависит от того как часто вам будет нужно работать с этими данными и в каком виде. В принципе ваша база и так в любом случае должна хранить все данные по операциям платежным, по юзерам например в таблице юзеров, по заказам в таблице заказов по текущим операциям в другой таблице и т.д. вопрос в том стоит ли собирать эти же данные в отдельную таблицу для более простого быстрого извлечения.
Данные не должны дублироваться в рамках одной базы данных в двух разных таблицах. Хотите единые отчет - очень-много-табличный запрос.
Поэтому я просто все операции с платежами вел в виде отдельного текстового лога, создаваемого каждые сутки и удаляемого раз в месяц.
считываем данные с файла по примерному времени операции и говорим пользователю почему не прошел платеж (на самом деле это должно делаться автоматом, а лог-файл служит просто для удобного просмотра и работы с последовательностью операций в тех случаях когда не надо вносить изменения в бд). Реализовано в виде одного класса с методами записи отличающимися в зависимости от типа операции - оплата, возврат, запрос сервера платежной системы, приход статус успешной оплаты, запись ошибки оплаты и т.д.
Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011
Помог: 2 раз(а)
Zuldek пишет:
gheka пишет:
Да это кстати интересная мысль но хотелось бы всё таки узнать где лучше хранить большой обём информации в базе или текстовом файле?
И стоит ли создавать историю для каждого вида пользователя то есть: для ПРОДОВЦА, АГЕНТА, ЭКСПЕРТА, АДМИНА, или стоить просто как я и задумал разделить просто по ID участника?
Все зависит от того как часто вам будет нужно работать с этими данными и в каком виде. В принципе ваша база и так в любом случае должна хранить все данные по операциям платежным, по юзерам например в таблице юзеров, по заказам в таблице заказов по текущим операциям в другой таблице и т.д. вопрос в том стоит ли собирать эти же данные в отдельную таблицу для более простого быстрого извлечения.
Данные не должны дублироваться в рамках одной базы данных в двух разных таблицах. Хотите единые отчет - очень-много-табличный запрос.
Поэтому я просто все операции с платежами вел в виде отдельного текстового лога, создаваемого каждые сутки и удаляемого раз в месяц.
считываем данные с файла по примерному времени операции и говорим пользователю почему не прошел платеж (на самом деле это должно делаться автоматом, а лог-файл служит просто для удобного просмотра и работы с последовательностью операций в тех случаях когда не надо вносить изменения в бд). Реализовано в виде одного класса с методами записи отличающимися в зависимости от типа операции - оплата, возврат, запрос сервера платежной системы, приход статус успешной оплаты, запись ошибки оплаты и т.д.
Да вы правы в базе будет лучше сделать в моём случае и решил прислушаться к вашим словам и не скапливать повторяющуюся информацию и разделить на разные таблицы и вытаскивать нужные данные проверками и запросам тем более не так мого нужно будет вытаскивать.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.