Продукты проектирования систем электронной коммерции (Часть 1)

задняя часть Архитектура
Продукты проектирования систем электронной коммерции (Часть 1)

Парни из электронной коммерции используют его каждый день, как кошка, собака и т. д.

Дизайн системы электронной коммерции кажется сложным и простым, кажущимся простым и сложным Эта глава предназначена для более подробного изучения младшими инженерами и инженерами среднего уровня.

предисловие

Дизайн товаров занимает важное место в системе электронной коммерции. Как спроектировать систему товаров с высоким уровнем расширения и высокой производительностью, не так просто. Мой дизайн исследуется мной после наблюдения за проектами крупных интернет-гигантов, и это не совсем правильно.но не совсем неправильно.спроектированная мной система электронной коммерции уже используется.если будут проблемы с логикой,я оперативно доработаю идеи оформления своих статей о системе электронной коммерции.

элемент

clipboard.pngСм. рисунок выше.На этот раз мы сначала объясним системные спецификации и пользовательские спецификации, системные атрибуты и пользовательские атрибуты, а также их значения.

SPU

SPU (Standard Product Unit) стандартизированная единица продукта

Что такое стандартизированная единица продукции?

Отказ от термина стандартизация, единица продукции? Это продукт как единое целое. Например, если вы продавец ноутбуков, вы говорите, что хотите 100 моделей iphonex со случайными характеристиками при покупке товара, но при покупке товара не учитываете объем памяти или размер экрана. продукт iphonex как единое целое. Это единица продукта. Если говорить о стандартизации, то это просто такой стандарт, сформулированный кем-то или одним человеком, поэтому его называют стандартизированной единицей товара, не опровергайте меня пояснением в энциклопедии Baidu, я просто объясняю SPU более доступно.

clipboard.png

Например, цена iPhoneX также отличается, а iPhoneX 64G составляет 8888, а iPhoneX 256G - 18888. В это время мы не можем построить 2 SPU для управления этими 2 продуктами. На этот раз вам нужно использовать концепцию SPU.

SKU

SKU (Stock Keeping Unit) инвентарная единица

Что такое складская единица?

Буквально запасы относятся к тому, сколько штук определенного продукта определенной спецификации все еще доступно.В настоящее время он не может быть нацелен только на продукт. В приведенном выше примере iphonex имеет 2 продукта с разными характеристиками, и в настоящее время невозможно рассчитать запасы каждой спецификации (Нецелесообразно создавать 2 продукта, и дальнейшее управление будет очень сложным.Например, кроссовки Anta имеют более десятка размеров.Вам нужно создать более десятка продуктов?), в это время вы можете создать только подэлемент для текущего элемента, мы называем это спецификацией, например, у iphonex есть две спецификации: хранение и цвет

clipboard.png

Вы нашли что-нибудь или есть проблема? Как выразить конкретный размер хранилища и конкретный цвет? В это время вам нужно создать субпродукт спецификации, мы называем его атрибутом

clipboard.png

Сочетание каждого атрибута является новым продуктом, мы называем его SKU, один SPU соответствует N Skus

clipboard.pngЭто создаст n товаров

  • iphonex 64G белый
  • iphonex 32g черный
  • iphonex 256G белый и т. д...

Технические характеристики/свойства системы

Зачем настраивать свойства спецификации системы?

clipboard.pngКража изображения Taobao, выше приведены характеристики и атрибуты, установленные в соответствии с классифицированным брендом.

Основная цель состоит в том, чтобы облегчить продавцам добавление продуктов и управление спецификациями и атрибутами продуктов унифицированным образом.Конечно, система электронной коммерции должна свести к минимуму использование спецификаций системных атрибутов в случае ранней эксплуатации (для удобство торговцев).

Излишне говорить о пользовательских свойствах. Как можно запретить продавцам добавлять свои спецификации и размеры?

данные

Конкретная таблица данных разработана следующим образом

product

Товарный стол (spu table)

CREATE TABLE `product` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品标题',
  `category_id` int(11) NOT NULL COMMENT '商品分类编号',
  `mer_id` int(11) NOT NULL COMMENT '商家编号',
  `freight_id` int(11) DEFAULT NULL,
  `type_id` tinyint(4) NOT NULL COMMENT '类型编号',
  `sketch` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '简述',
  `intro` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品描述',
  `keywords` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品关键字',
  `tags` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标签',
  `marque` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品型号',
  `barcode` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库条码',
  `brand_id` int(11) NOT NULL COMMENT '品牌编号',
  `virtual` int(11) NOT NULL DEFAULT '0' COMMENT '虚拟购买量',
  `price` decimal(8,2) NOT NULL COMMENT '商品价格',
  `market_price` decimal(8,2) NOT NULL COMMENT '市场价格',
  `integral` int(11) NOT NULL DEFAULT '0' COMMENT '可使用积分抵消',
  `stock` int(11) NOT NULL COMMENT '库存量',
  `warning_stock` int(11) NOT NULL COMMENT '库存警告',
  `picture_url` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '封面图',
  `posters` varchar(125) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `status` tinyint(4) NOT NULL COMMENT '状态 -1=>下架,1=>上架,2=>预售,0=>未上架',
  `state` tinyint(4) NOT NULL DEFAULT '0' COMMENT '审核状态 -1 审核失败 0 未审核 1 审核成功',
  `is_package` enum('0','1') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否是套餐',
  `is_integral` enum('0','1') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '是否是积分产品',
  `sort` int(11) NOT NULL DEFAULT '99' COMMENT '排序',
  `deleted_at` timestamp NULL DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

system_attribute

Технические характеристики системы

CREATE TABLE `system_attribute` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `category_id` int(11) NOT NULL COMMENT '商品类别编号',
  `name` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '属性名称',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排列次序',
  PRIMARY KEY (`id`),
  KEY `product_attribute_category_id_name_index` (`category_id`,`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

system_attribute_option

Свойство системы

CREATE TABLE `product_attribute_option` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '选项名称',
  `attr_id` int(11) NOT NULL COMMENT '属性编码',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排序',
  PRIMARY KEY (`id`),
  KEY `product_attribute_option_name_attr_id_index` (`name`,`attr_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

product_attribute_and_option

Спецификации Свойства Таблица привязки

CREATE TABLE `product_attribute_and_option` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sku_id` int(11) NOT NULL COMMENT 'sku编码',
  `option_id` int(11) NOT NULL DEFAULT '0' COMMENT '属性选项编码',
  `attribute_id` int(11) NOT NULL COMMENT '属性编码',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排序',
  `supplier_option_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `product_attribute_and_option_sku_id_option_id_attribute_id_index` (`sku_id`,`option_id`,`attribute_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6335 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

product_sku

таблица артикулов

CREATE TABLE `product_sku` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL COMMENT '商品编码',
  `name` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'sku名称',
  `img` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '主图',
  `price` decimal(8,2) NOT NULL COMMENT '价格',
  `stock` int(11) NOT NULL DEFAULT '0' COMMENT '库存',
  `code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品编码',
  `barcode` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品条形码',
  `data` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'sku串',
  PRIMARY KEY (`id`),
  KEY `product_sku_name_product_id_index` (`name`,`product_id`)
) ENGINE=InnoDB AUTO_INCREMENT=530 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

product_attribute

Пользовательская спецификация

CREATE TABLE `product_attribute` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL COMMENT '商品编码',
  `name` varchar(125) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规格名称',
  `sort` int(11) NOT NULL DEFAULT '999' COMMENT '排序',
  PRIMARY KEY (`id`),
  KEY `product_supplier_attribute_name_product_id_index` (`name`,`product_id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Спасибо

На самом деле понять уровень дизайна продукта очень просто, в последующих статьях в основном подробнее рассказывается о том, как более разумно хранить эти данные. Например, если дизайн неразумен, добавить продукт просто, а изменить продукт очень сложно. В раннем дизайне мы должны стараться избегать этих «ям».

Спасибо, что вы есть, надеюсь, моя статья поможет вам. Если у вас есть какие-либо вопросы, вы можете оставить сообщение в области комментариев, я отвечу, как только увижу его. Благодарность

общаться

Жизнь бесконечна, кодирование бесконечно.

WeChat поиск【Понять в одной статье】Распространяйте положительную энергию технологий и продолжайте осваивать новые знания.