在数据库中存储 php 条代码规则
Store php code rules in database
目前我正在与交付提供商一起设计网站的数据库和架构。
有些供应商是静态运费,没有问题,但有些是动态计算价格。例如:
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
但我不完全相信它是最好和有效的解决方案,或者它是否会起作用。你怎么看?
有没有更合适的方案?也许有人已经遇到过这样的挑战并找到了很好的出路。
虽然在技术上可行,但执行直接存储在数据库中的代码存在安全风险。添加字段以适应价格变化的方式(provider_markup、provider_discount、provider_shipping 等)并构建您的代码以利用这些更有意义。
目前我正在与交付提供商一起设计网站的数据库和架构。
有些供应商是静态运费,没有问题,但有些是动态计算价格。例如:
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
但我不完全相信它是最好和有效的解决方案,或者它是否会起作用。你怎么看?
有没有更合适的方案?也许有人已经遇到过这样的挑战并找到了很好的出路。
虽然在技术上可行,但执行直接存储在数据库中的代码存在安全风险。添加字段以适应价格变化的方式(provider_markup、provider_discount、provider_shipping 等)并构建您的代码以利用这些更有意义。