Всем прив.
Я не первый наверное кто подобный вопрос поднимает, но всё же... Стоит задача в проекте сделать баланс пользователей.
Сразу подчеркну что надо создать 2 разных счёта "USD" и "EUR"
Думаю какого вида таблицы создать. Попробую привести прим. той что я думаю.
В таблице пользователя создать 2 поля:
1. pantela - 01 Июля, 2017 - 19:58:50 - перейти к сообщению
Думаю для того что бы сумму подсчитывать баланс сразу из одного поля, что бы не пробегать по другой таблицы для суммирования все входящие и исходящие суммы.
Таблица транзакции: Для введение учёта всех транзакции
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE TABLE IF NOT EXISTS `users_transactions` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `user_id` int(11) DEFAULT NULL COMMENT 'Пользователь',
- `datetime` datetime NOT NULL COMMENT 'Дата-Время операции',
- `type` enum('credit','debit') NOT NULL COMMENT 'credit-поступило на счет, debit - снято со счета',
- `currency` enum('usd','eur') NOT NULL COMMENT 'Какая валюта была',
- `method_id` tinyint(1) NOT NULL COMMENT 'Метод',
- `order_id` int(11) DEFAULT NULL COMMENT 'Заказ',
- `amount` double(15,2) NOT NULL COMMENT 'Сумма',
- `comment` text NOT NULL COMMENT 'Комментарий'
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Метод пополнения счёта:
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- CREATE TABLE `methods` (
- `method_id` int(11) NOT NULL,
- `status` tinyint(1) NOT NULL,
- `title` varchar(55) COLLATE utf8_unicode_ci NOT NULL
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;