Продолжим.
А теперь ответ на второй вопрос - как сущности будут взимодействовать. Для этого нужно организовать связи. Это уже начало бизнес-логики.
Первый этап - что. Сейчас организованы те свойства, которые необходимы для хранения состояния (информации).
Второй - как. Для этого нужно прописать свойства со связями - своего рода ссылки на те объекты, от которых нужно получить информацию, либо кому может потребоваться информация.
Логика покупки товара очень проста.
1. Если посетитель выбрал твар и положил его в корзину, он переходит из статуса "посетитель" в статус "покупатель". Соответственно для него инициируется объект класса Buyer. Так, как на сайте не предусмотрена регистрация, идентификация покупателя будет производиться по уникальному кукису.
2. На выбранный товар создается объект заказа
Order3. Одновременно создается объект корзины. Это временный объект, имеет срок жизни. Служит для того, чтобы покупатель мог посмотреть и подредактировать заказ.
4. В заказе сохраняются текущее положение дел. Цена на момент покупки (она может измениться в товаре) и действующая на момент оформления акция.
Допустим покупатель выбрал товар и положил его в корзину. По сути - начал оформлять заказ. Соответственно должен появиться объект заказа,
принадлежащий покупателю. Добавляем в класс
Order атрибут
buyer_id, что бы идентифицировать принадлежность. Заказ (
Order) соответственно должен распологать информацией, что именно заказали. Делаем
связь с товаром - помещаем в класс атрибут
product_id. Еще нам нужно знать, действовала ли на момент оформления заказа какая-либо акция (
promotion_id). Ну и последнее, проверяем, действует ли для текущего заказа корзина (
basket_id).
У покупателя должна быть связь с корзиной. Если есть открытая, то выбираем заказы которые принадлежат ей. Соответственно классу
Buyer нужна связь
basket_idТовар должен знать, какая акция действует на него в текущий момент. Значит делаем связь
Product ->
promotion_idДля отчетности связи не нужны, это по сути логи.
Так что теперь сущности со связями будут такими:
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.