Php 产品和产品变体的数据库设计
我正在建立一个商业网站,我一直在研究不同的方式来展示带有变体的产品。我正在试着为隐形眼镜做这个,想知道最好的方法是什么 产品可以是简单的,例如没有变体的镜片盒或镜片溶液,或者在隐形眼镜的情况下,每个镜片最多可以有三种可配置变体,具体取决于处方的镜片(例如,功率、基本曲线、直径) 在我的结构中,我有简单的产品作为一个产品,没有父产品。隐形眼镜将存储为一个产品,每个变体将存储为一个单独的产品,引用其父产品,变体本身将使用products_variants表链接 我的结构如下:Php 产品和产品变体的数据库设计,php,database-design,optimization,e-commerce,Php,Database Design,Optimization,E Commerce,我正在建立一个商业网站,我一直在研究不同的方式来展示带有变体的产品。我正在试着为隐形眼镜做这个,想知道最好的方法是什么 产品可以是简单的,例如没有变体的镜片盒或镜片溶液,或者在隐形眼镜的情况下,每个镜片最多可以有三种可配置变体,具体取决于处方的镜片(例如,功率、基本曲线、直径) 在我的结构中,我有简单的产品作为一个产品,没有父产品。隐形眼镜将存储为一个产品,每个变体将存储为一个单独的产品,引用其父产品,变体本身将使用products_variants表链接 我的结构如下: products -
products
- id
- parent_id
- name
- price
- type_id
- brand_id
type
- id
- name
brand
- id
- name
product_variant_group
- id
- name
product_variant_value
- id
- product_variant_group_id
- value
products_variants (isCrossRef = true for Propel relationships)
- id
- product_id
- product_variant_value_id
我的代码已经相当慢了,我甚至还没有开始构建选择框来选择处方
public function getPossibleVariants($productId)
{
$product = ProductQuery::create()->findPk($productId);
$children = $product->getChildren();
$options = array();
foreach ($children as $child) {
if ($child->countProductsVariantss()) {
$variants = $child->getProductVariantValues();
foreach ($variants as $variant) {
$group = $variant->getProductVariantGroup();
$options[$group->getName()][] = $variant->getValue();
}
}
}
ksort($options);
return $options;
}
我正在使用propel和Zend框架。我这样做对吗?大多数人需要两种相同的镜片类型,但每只眼睛的处方不同。我将如何实现这一点
我试过研究其他系统,比如magento和oscommerce。前者让我困惑,我发现后者的代码凌乱。因为这是一次学习经历,我想用最好的方式做事
谢谢最好对所有产品和产品变体使用一个表。使基于产品的操作变得更容易。最终,变体只是一种产品 所以我建议
products
- id
- parent_id
- name
- price
- type_id
- brand_id
- variant_id
附加字段variant\u id
应引用变量组
这样比较简单。您可以根据变体组id检索所有变体
我经常使用Amazon产品API。他们的方法与此类似。属于