Нужен совет по проектированию системы

Статус
В этой теме нельзя размещать новые ответы.
А почему вообще изменение цены у моделей влияет на уже обработанные заказы? Там какая-то интеграция с 1С ? Почему они берут цену из свежих товаров? Там же может евро/доллар скакать как угодно, меняться поставщик, использоваться какие-то скидки/акции/распродажные цены.

У заказов может быть ссылка на вообще свою таблицу с артикулами/заказанным количеством товаров/ценами на момент совершения заказа. Так что создать им таблицу, похожую на таблицу товаров, содержащую только модели, на которые делались заказы, чтобы отвязать от самих товаров. Там ид_строки_в таблице, ид заказа, артикул товара, его цена на момент совершения заказа, дата, может быть количество и тд.
 
Нет, к 1С это никакого отношения не имеет. Проект самописный под спец. цели. и определённые задачи.
Писался по таким тех. заданиям.
А почему вообще изменение цены у моделей влияет на уже обработанные заказы?
Цены обработанных заказов ссылаются на основную таблицу с товаром, где они и прописаны. Цены всегда статичны. Вот только сейчас процент наценки изменяется :(
 
Почему бы просто в том месте, где добавляется процент не добавить проверку на id заказа. К примеру если id<текущего (старые заказы) 15 %, в противном случае - 20%
 
Как один из вариантов, но это будет,в принципе, как и всё остальное, велосипед: берём цену->проверяем дату заказа->старая->оставляем значение->новая->+ ещё 5% от старой
 
Как один из вариантов, но это будет,в принципе, как и всё остальное, велосипед: берём цену->проверяем дату заказа->старая->оставляем значение->новая->+ ещё 5% от старой
Ну да, вы же сами выше спрашивали "Как наипростейшим образом можно решить эту проблему? "
Самое простое решение - это проверка заказа перед выставлением процента.

Немного более сложное решение: добавить в таблицу дополнительное поле "финальная стоимость" и заполнить его для старых заказов +15%, для новых +20%
 
  • Нравится
Реакции: 01K
Немного более сложное решение: добавить в таблицу дополнительное поле "финальная стоимость" и заполнить его для старых заказов +15%, для новых +20%

Это не сложное решение - это единственное верное решение.
Хранить поле с конечной стоимостью заказа в таблице заказов или связанной с ней таблицей.
Заполнять это поле надо при формировании заказа, для уже существующих придётся заполнить по существующим правилам.
 
  • Нравится
Реакции: 01K
Спасибо за советы!
Уже пища для размышлений есть. Ближе к реализации, возможно, ещё возникнут вопросы.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху