Я как-то для себя рисовал ER-схему, как хранятся профайлы покупателя и как они связаны со свойствами заказа. Возможно, кому-то эта схема прояснит ситуацию.
Итого получается так: свойства заказа и поля в профайле определяются в настройках свойств заказа. Т.е. свойство заказа может входить в профайл покупателя, либо быть просто свойством заказа.
Далее при оформлении заказа, те значения свойств заказа, которые входят в профайл, сохраняются в отдельное место и завязываются на пользователя.
В будущем, пользователь может выбрать свой профайл, т.е. значения тех свойств заказа, которые входят в профайл. Эти значения из профайла запишутся в значения свойств заказа.
Обратите внимание! Значения свойств заказа — это не тоже самое, что значения свойств заказа в профайле покупателя, они связаны только структурой, но не значениями. Иными словами, профайлы покупателя — это способ запоминания значений свойств при оформлении заказа.
Получается следующая схема работы при оформлении заказа:
1. Пользователю даются на заполнение все свойства заказа
2. Значения тех свойств, которые помечены как «входят в профайл» записываются в отдельные таблицы — место хранения профайлов покупателя.
3. Значения всех свойств (и профайловых и других) записываются в сам заказ (CSaleOrder)
4. При повторном оформлении заказа пользователю дается возможность часть свойств, помеченных как «входят в профайл» взять из отдельного места хранения — профайлов покупателя.
Вот собственно и вся схема работы.
И последнее: привожу схему профайлов со всеми наглядными связями.
Итого получается так: свойства заказа и поля в профайле определяются в настройках свойств заказа. Т.е. свойство заказа может входить в профайл покупателя, либо быть просто свойством заказа.
Далее при оформлении заказа, те значения свойств заказа, которые входят в профайл, сохраняются в отдельное место и завязываются на пользователя.
В будущем, пользователь может выбрать свой профайл, т.е. значения тех свойств заказа, которые входят в профайл. Эти значения из профайла запишутся в значения свойств заказа.
Обратите внимание! Значения свойств заказа — это не тоже самое, что значения свойств заказа в профайле покупателя, они связаны только структурой, но не значениями. Иными словами, профайлы покупателя — это способ запоминания значений свойств при оформлении заказа.
Получается следующая схема работы при оформлении заказа:
1. Пользователю даются на заполнение все свойства заказа
2. Значения тех свойств, которые помечены как «входят в профайл» записываются в отдельные таблицы — место хранения профайлов покупателя.
3. Значения всех свойств (и профайловых и других) записываются в сам заказ (CSaleOrder)
4. При повторном оформлении заказа пользователю дается возможность часть свойств, помеченных как «входят в профайл» взять из отдельного места хранения — профайлов покупателя.
Вот собственно и вся схема работы.
И последнее: привожу схему профайлов со всеми наглядными связями.