Panchous
Павел
Организация магазина: нужна критика и конструктивные предложения.
Система продает через инет карточки оплаты.
После того, как клиент оплатил заказ, он должен иметь возможность скачать себе файл с кодом активации.
(для него хранятся все заказы)
- на сервере имеется папка с файлами (карточками), которая периодически пополняется новыми поступлениями
как лучше организовать работу магазина (алгоритм и БД) в такой ситуации?
Возможные проблемы:
- отсутствие карточек на сервере
(как быть, если два юзера делают одновременно заказы на 10 карт, а доступно всего 11?)
Раньше ничего подобного не делал - нужен Ваш совет.
Сам додумался до следующего...
БД (упрощенно):
user (user_id=PK, login, password)
order (order_id=PK, user_id=FK, oplachen={0,1}, vipolnen={0,1})
card (card_id=PK, filename, free={0,1})
order2card (order_id=FK, card_id=FK)
после того, как юзер сформировал заказ (>=1 карточки)
и оплатил его, заказ помечается как ОПЛАЧЕННЫЙ (oplachen=1),
но не выполненный (vipolnen=0)
далее, скрипт (запускается по крону) проверяет оплаченные и невыполненные заказы, и (если есть необходимое кол-во свободных карточек) помечает карточки флагом free=0, а заказ флагом vipolnen=1.
В случае, если свободных карточек (для продажи) осталось мало - отсылается уведемление админу.
Впрочем, я уже запутался совсем(
Как ПРАВИЛЬНО решить поставленную задачу?
Буду признателен любому дельному совету.
Система продает через инет карточки оплаты.
После того, как клиент оплатил заказ, он должен иметь возможность скачать себе файл с кодом активации.
(для него хранятся все заказы)
- на сервере имеется папка с файлами (карточками), которая периодически пополняется новыми поступлениями
как лучше организовать работу магазина (алгоритм и БД) в такой ситуации?
Возможные проблемы:
- отсутствие карточек на сервере
(как быть, если два юзера делают одновременно заказы на 10 карт, а доступно всего 11?)
Раньше ничего подобного не делал - нужен Ваш совет.
Сам додумался до следующего...
БД (упрощенно):
user (user_id=PK, login, password)
order (order_id=PK, user_id=FK, oplachen={0,1}, vipolnen={0,1})
card (card_id=PK, filename, free={0,1})
order2card (order_id=FK, card_id=FK)
после того, как юзер сформировал заказ (>=1 карточки)
и оплатил его, заказ помечается как ОПЛАЧЕННЫЙ (oplachen=1),
но не выполненный (vipolnen=0)
далее, скрипт (запускается по крону) проверяет оплаченные и невыполненные заказы, и (если есть необходимое кол-во свободных карточек) помечает карточки флагом free=0, а заказ флагом vipolnen=1.
В случае, если свободных карточек (для продажи) осталось мало - отсылается уведемление админу.
Впрочем, я уже запутался совсем(
Как ПРАВИЛЬНО решить поставленную задачу?
Буду признателен любому дельному совету.
