![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
antonivanov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.1.2010 Репутация: нет Всего: нет |
Здравствуйте!
Пишу проект на PHP в основе которого лежит что каждый пользователь имеет личный кошелек и есть различные способы внести деньги к себе в кошелек, так же есть различные способы вывода ну и соответственно перевод между пользователями. Ни разу не сталкивался с подобным и в интернете не нашел записей по этому поводу, поэтому прошу помощи на этом форуме. В общем помогите пожалуйста организовать БД удобным способом, чтобы можно было быстро получить баланс каждого пользователя, склеить запрос и получить список транзакций между пользователями и реализовать стандартные операции - ввод, вывод, пересылка между счетами. Сначала думал создать таблицу `transactions` с полями:
что то типа такого, но при большом количестве записей считать каждый раз баланс каждого пользователя долго и туповато... можно еще хранить текущий баланс в таблице самих пользователей, а `transactions` использовать для истории операций, но такой вариант не слишком устраивает, т.к. в случае потери данных или форс-мажоров восстановить состояние будет сложно.. хотя.. в общем прошу совета у опытных людей. Заранее спасибо!!! |
|||
|
||||
antonivanov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.1.2010 Репутация: нет Всего: нет |
Принял решение создать доп поле в users типа флоат - balance
и создать таблицу transactions триггером при создании записи в transactions пересчитывать balance для конкретного пользователя... |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
antonivanov, правильное решение.
![]() Только ИМХО, для баланса, лучше использовать отдельную таблицу, связанную с таблицей users один к одному. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
antonivanov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.1.2010 Репутация: нет Всего: нет |
А для чего? Какая выгода и что в ней будет содержаться?
|
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
На самом деле никогда не задкмывался.... всегда так делал и везде так делается
Что содержаться? Первичный ключ - код пользователя, атрибут - баланс. FK на справочник юзеров - опционально. Для чего? Ну, например, чтобы избежать блокировок справочника при изменении баланса. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
antonivanov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.1.2010 Репутация: нет Всего: нет |
Под справочником юзера вы подразумеваете таблицу пользователей?
В принципе да, согласен, такой метод эффективнее.. Спасибо большое) Еще вопрос: необходимо организовать возможность пересылки сообщений между пользователями... как то реализовывал, но все получилось наперекосяк, не учел тот факт что у Каждого сообщения может быть статус "прочитано" или "не прочитано" и еще пару моментов, как посоветуете реализовать? |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |