Как сохранить сложную корзину в базе данных разбора - PullRequest
0 голосов
/ 21 февраля 2019

Как сохранить корзину заказов и историю заказов?Цена предметов различается в зависимости от дополнений, прилагаемых к нему.Могу ли я сохранить как объект?или используйте разные строки для каждого элемента и ссылки или любые лучшие и эффективные идеи.аддоны хранятся в разных классах, а предметы - в разных.

1 Ответ

0 голосов
/ 18 марта 2019

Возможно, одна из возможных реализаций покупательского карта - это один класс Карт , в котором вы сохраняете различные атрибуты покупательского карт.Если у него есть определенные свойства, которые не изменятся со временем, то одним из вариантов является создание класса для сохранения идентификатора покупательской карты вместе с атрибутами, которые не меняются, а затем в отдельном классе есть указатель на исходный класс, которыйпредставляет торговый карта (с указателем на строку в Kart ) и остальные свойства, которые меняются (например, общее количество или элементы).

В этом отдельном классе SepKart хорошая идея иметь атрибуты validSince и validUntil и иметь в триггере beforeSave - функция, которая устанавливает атрибут validUntil другой строки в SepKart , который указывает на тот же торговый карта в Kart и не имеет validUntil set.

В случае элементов и их порядка, список объектов, которые указывают на элементы, сделает это, потому что тогда, если порядок изменится, тогда просто сохранится новый экземплярэто сохранит новый заказ, и вы сможете увидеть историю доставки картов за время A , просто запросив в SepKart строку, указывающую наКарта покупок Карта имеет validSince времени до A и validUntil после A (или validUntil не задано).

...