59 lines
2.8 KiB
SQL
59 lines
2.8 KiB
SQL
-- ============================================================
|
||
-- 家具套餐:主表 + 搭配明细(幂等)
|
||
-- 金额一律整数分;original_amount 由明细自动算,package_amount 是独立报价
|
||
-- ============================================================
|
||
|
||
SET @db := DATABASE();
|
||
|
||
SET @exists := (
|
||
SELECT COUNT(*) FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'cc_package'
|
||
);
|
||
SET @sql := IF(@exists = 0,
|
||
'CREATE TABLE `cc_package` (
|
||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||
`name` varchar(100) NOT NULL DEFAULT '''' COMMENT ''套餐名'',
|
||
`cover` varchar(500) NOT NULL DEFAULT '''' COMMENT ''封面'',
|
||
`subtitle` varchar(200) NOT NULL DEFAULT '''' COMMENT ''副标题'',
|
||
`remark` varchar(255) NOT NULL DEFAULT '''' COMMENT ''备注'',
|
||
`original_amount` int NOT NULL DEFAULT 0 COMMENT ''原价合计(分,倍率=1)'',
|
||
`package_amount` int NOT NULL DEFAULT 0 COMMENT ''套餐报价(分,倍率=1)'',
|
||
`is_hot` tinyint NOT NULL DEFAULT 0 COMMENT ''1=首页热门'',
|
||
`sort` int NOT NULL DEFAULT 0,
|
||
`status` tinyint NOT NULL DEFAULT 0 COMMENT ''0=上架 1=下架'',
|
||
`created_at` int NOT NULL DEFAULT 0,
|
||
`updated_at` int NOT NULL DEFAULT 0,
|
||
`deleted_at` int NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_package_hot` (`is_hot`, `sort`, `status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=''家具套餐''',
|
||
'SELECT ''skip cc_package'' AS msg'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @exists := (
|
||
SELECT COUNT(*) FROM information_schema.TABLES
|
||
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'cc_package_item'
|
||
);
|
||
SET @sql := IF(@exists = 0,
|
||
'CREATE TABLE `cc_package_item` (
|
||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||
`package_id` int NOT NULL DEFAULT 0 COMMENT ''套餐'',
|
||
`catalogue_id` int NOT NULL DEFAULT 0 COMMENT ''商品图册'',
|
||
`price_sheet_id` int NOT NULL DEFAULT 0 COMMENT ''规格行'',
|
||
`material_key` varchar(50) NOT NULL DEFAULT ''routine'' COMMENT ''材质键'',
|
||
`quantity` int NOT NULL DEFAULT 1 COMMENT ''数量'',
|
||
`unit_price` int NOT NULL DEFAULT 0 COMMENT ''该规格基准单价快照(分)'',
|
||
`sort` int NOT NULL DEFAULT 0,
|
||
`remark` varchar(255) NOT NULL DEFAULT '''',
|
||
`created_at` int NOT NULL DEFAULT 0,
|
||
`updated_at` int NOT NULL DEFAULT 0,
|
||
`deleted_at` int NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_package_item_pkg` (`package_id`),
|
||
KEY `idx_package_item_cat` (`catalogue_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=''套餐搭配明细''',
|
||
'SELECT ''skip cc_package_item'' AS msg'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|