2. 数据库设计 ```sql -- 规格维度表 CREATE TABLE spec_dimension ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL COMMENT 规格维度名称, unit VARCHAR(20) COMMENT 单位, category_id INT COMMENT 关联商品分类, is_required TINYINT(1) DEFAULT 1 COMMENT 是否必填 );
-- 规格值表 CREATE TABLE spec_value ( id INT PRIMARY KEY AUTO_INCREMENT, dimension_id INT NOT NULL COMMENT 关联规格维度, value VARCHAR(100) NOT NULL COMMENT 规格值, display_order INT COMMENT 显示顺序 );
-- 商品规格关联表 CREATE TABLE product_spec ( product_id INT NOT NULL COMMENT 商品ID, dimension_id INT NOT NULL COMMENT 规格维度ID, value_id INT NOT NULL COMMENT 规格值ID, PRIMARY KEY (product_id, dimension_id) ); ```
3. 前端展示组件 ```javascript // 规格选择组件示例 class SpecSelector extends React.Component { state = { selectedSpecs: {} };
missing_specs = [dim.name for dim in required_dims if dim.id not in spec_data or not spec_data[dim.id]] if missing_specs: raise ValidationError(f"缺少必填规格: {, .join(missing_specs)}")
其他业务规则验证... ```
3. 规格与价格联动 - 动态定价逻辑: ```javascript // 前端价格计算示例 function calculatePrice(basePrice, specs) { let multiplier = 1;