電商數據庫商品表的設計


表模型

  • 商品有品牌丶分類丶屬性丶圖片丶規格等屬性。
  • 品牌丶分類丶屬性可以重復使用,獨立建立表進行存儲。
  • 商品可能有一張或多張圖片,跟商品之間是一對多的關系。
  • 商品有一至多個規格,商品和規格是一對多的關系。
 

 

 

SQL

  • 商品表
CREATE TABLE `cy_goods` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `goods_name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品名稱',
  `brand_id` int(10) unsigned NOT NULL COMMENT '品牌ID',
  `cate_id` int(10) unsigned NOT NULL COMMENT '分類ID',
  `price` bigint(20) unsigned NOT NULL,
  `original` bigint(20) unsigned NOT NULL COMMENT '商品原價',
  `tags` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品標簽',
  `content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品內容',
  `summary` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品描述',
  `is_sale` tinyint(4) NOT NULL COMMENT '上架狀態: 1是0是',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `goods_brand_id_foreign` (`brand_id`),
  KEY `goods_cate_id_foreign` (`cate_id`),
  CONSTRAINT `goods_brand_id_foreign` FOREIGN KEY (`brand_id`) REFERENCES `cy_brand` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `goods_cate_id_foreign` FOREIGN KEY (`cate_id`) REFERENCES `cy_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 分類表
CREATE TABLE `cy_categories` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父級分類ID,0為頂級分類',
  `cate_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分類名稱',
  `sort` smallint(5) unsigned NOT NULL DEFAULT '99' COMMENT '排序字段',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `categories_cate_name_unique` (`cate_name`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 品牌表
CREATE TABLE `cy_brand` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `brand_name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `desc` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '品牌描述',
  `sort` int(10) unsigned NOT NULL DEFAULT '99' COMMENT '排序字段',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 商品圖片表
CREATE TABLE `cy_goods_images` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `goods_id` int(10) unsigned NOT NULL COMMENT '商品ID',
  `link` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '圖片URL地址',
  `position` smallint(5) unsigned NOT NULL COMMENT '圖片位置',
  `is_master` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否主圖: 1是,0否',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `goods_images_goods_id_foreign` (`goods_id`),
  CONSTRAINT `goods_images_goods_id_foreign` FOREIGN KEY (`goods_id`) REFERENCES `cy_goods` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 商品SKU表
CREATE TABLE `cy_goods_sku` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `goods_id` int(10) unsigned NOT NULL COMMENT '商品ID',
  `title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '規格名稱',
  `num` int(10) unsigned NOT NULL COMMENT 'SKU庫存',
  `price` bigint(20) unsigned NOT NULL COMMENT '商品售價',
  `properties` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品屬性表ID,以逗號分隔',
  `bar_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '條碼',
  `goods_code` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '商品碼',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '狀態:1啟用,0禁用',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `goods_sku_goods_id_foreign` (`goods_id`),
  CONSTRAINT `goods_sku_goods_id_foreign` FOREIGN KEY (`goods_id`) REFERENCES `cy_goods` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 屬性名表
CREATE TABLE `cy_property_name` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '屬性名',
  `cate_id` int(10) unsigned NOT NULL COMMENT '分類ID',
  `is_allow_alias` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否允許別名: 1是0否',
  `is_color` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否顏色屬性: 1是0否',
  `is_enum` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否枚舉: 1是0否',
  `is_input` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否輸入屬性: 1是0否',
  `is_key` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否關鍵屬性: 1是0否',
  `is_sale` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否銷售屬性:1是0否',
  `is_search` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否搜索字段: 1是0否',
  `is_must` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否必須屬性: 1是0否',
  `is_multi` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否多選: 1是0否',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '狀態: 1啟用,0禁用',
  `sort` int(10) unsigned NOT NULL DEFAULT '99' COMMENT '排序字段',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `property_name_cate_id_foreign` (`cate_id`),
  CONSTRAINT `property_name_cate_id_foreign` FOREIGN KEY (`cate_id`) REFERENCES `cy_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 屬性值表
CREATE TABLE `cy_property_name` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '屬性名',
  `cate_id` int(10) unsigned NOT NULL COMMENT '分類ID',
  `is_allow_alias` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否允許別名: 1是0否',
  `is_color` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否顏色屬性: 1是0否',
  `is_enum` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否枚舉: 1是0否',
  `is_input` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否輸入屬性: 1是0否',
  `is_key` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否關鍵屬性: 1是0否',
  `is_sale` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否銷售屬性:1是0否',
  `is_search` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否搜索字段: 1是0否',
  `is_must` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否必須屬性: 1是0否',
  `is_multi` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否多選: 1是0否',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '狀態: 1啟用,0禁用',
  `sort` int(10) unsigned NOT NULL DEFAULT '99' COMMENT '排序字段',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `property_name_cate_id_foreign` (`cate_id`),
  CONSTRAINT `property_name_cate_id_foreign` FOREIGN KEY (`cate_id`) REFERENCES `cy_categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  • 商品屬性表
CREATE TABLE `cy_goods_property` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `goods_id` int(10) unsigned NOT NULL COMMENT '商品ID',
  `prop_name_id` int(10) unsigned NOT NULL COMMENT '屬性名ID',
  `prop_value_id` int(10) unsigned NOT NULL COMMENT '屬性值ID',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `goods_property_prop_name_id_foreign` (`prop_name_id`),
  KEY `goods_property_prop_value_id_foreign` (`prop_value_id`),
  KEY `goods_property_goods_id_foreign` (`goods_id`),
  CONSTRAINT `goods_property_goods_id_foreign` FOREIGN KEY (`goods_id`) REFERENCES `cy_goods` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `goods_property_prop_name_id_foreign` FOREIGN KEY (`prop_name_id`) REFERENCES `cy_property_name` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `goods_property_prop_value_id_foreign` FOREIGN KEY (`prop_value_id`) REFERENCES `cy_property_value` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM