mysql — хранит правила php кода в базе данных

В настоящее время занимаюсь проектированием БД и архитектуры сайта с провайдерами доставки.

У некоторых провайдеров статическая цена доставки, проблем нет, но у некоторых динамически рассчитывается цена. Например:

if ({{item_type}} == 1)
$price = {{default_price}} - {{default_price}} * 0.5;
else
$price = {{default_price}};
// {{...}} values are in sql tables

Количество провайдеров огромно и должно легко добавляться, поэтому я не могу жестко написать такие правила для каждого в php.

Моя идея заключалась в том, чтобы хранить такие правила, как строка в столбце sql и рабочий процесс должен выглядеть так:

select_rule -> parse_{{}}_values -> preg_replace_{{}}_values ->
eval(selected&parsed_rule) -> use_$price_variable

Но я не совсем уверен, что это лучшее и эффективное решение, или оно будет работать вообще. Как вы думаете?

Есть ли более подходящие решения? Возможно, кто-то уже сталкивался с такой проблемой и нашел хороший выход.

2

Решение

Хотя технически это возможно, было бы рискованно выполнять код, непосредственно сохраненный в базе данных. Было бы более разумно добавить поля, чтобы учесть способы изменения цены (provider_markup, provider_discount, provider_shipping и т. Д.) И создать свой код для их использования.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector