电商数据库核心表设计

目录

1、库存表设计

1.1、案例讲解

1.2、优势与劣势

1.2.1 优势

1.2.2 劣势

2、商品评论表设计

3、用户登录表设计


1、库存表设计

      参考文档:电商ERP系统——商品SKU与库存设计

      商品属性表:由属性名与属性值共同构成商品的一个属性,属性名 atrr_name_id 是product_attr_name的一个外键,而atrr_value_id 是product_attr_value一个外键。
因为不同的商品它们的属性有很多不同,共同的部分抽象进商品表中,不同的部分可以存储到这个product_attr表中。

 

商品属性名表:对商品属性进行抽象,抽象元数据,属性名、是否sku、是否颜色、是否支持搜索、是否启用、属性类型

商品属性值表:存储对应商品属性名相应的属性值,如果是单选、多选,则是多个值

商品sku表:存储对应商品sku信息

1.1、案例讲解

有一个product_id=1的商品,它有两种规格:   红色:L款、红色:M款需要录入库存

我们要查询sku_id=1的具体规格相关参数,

得到sku_attr_ids为"1:2",我们将其处理成一个数组[1,2]


SELECT
	n.attr_name,
	v.attr_value_content 
FROM
	product_attr t
	LEFT JOIN product_attr_name n ON t.attr_name_id = n.attr_name_id
	LEFT JOIN product_attr_value v ON t.attr_value_id = v.attr_value_id 
WHERE
	t.attr_id IN ( 1, 2 );

执行结果如下:

1.2、优势与劣势

1.2.1 优势

1、对sku有比较好的支持,可以从多个属性角度来自定义规格、库存、价格
2、对商品属性进行统计比较方便

1.2.2 劣势

1、表设计过于复杂了,查询一个商品多的规格库存,需要联表查询至少4张表
 

2、商品评论表设计

例如,有这么一个评论场景:

用户1:这是一个比较好的商品
      用户2:你骗人,我用了,效果不好
	        用户1:真的,你是不是使用方法不对?
用户3:我不想评论

 

3、用户登录表设计

        用户表设计这一块主要描述一下,如果支持多种登录方式,我们设想一下,系统刚开始运行时,我们系统只有一个认证模式:即用户名密码认证。随着后期系统的扩展,
可能会有手机短信验证码登录、邮箱登录、第三方登录(QQ、微信、百度账号、Github)等等,当需要支持这些登录方式式,我们系统肯定需要存储这些登录方式的身份与凭证
信息,我们肯定不太愿意在用户表主表中增加这些字段,因为维护性与扩展性非常不好,每次对接都需要在用户表中增加对应的扩展字段,扩展性非常差。
      下面我给我们电商系统中,设计的用户登录相关的表,用户表与第三方登录表:
用户表:

第三方登录表结构:

CREATE TABLE `u_third_login` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `principal` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '身份',
  `credential` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '凭证',
  `login_type` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '登录类型(1:手机号/验证码;2:QQ登录;3:微信登录-PC扫码);4:微信登录-公众号登录)',
  `u_user_id` bigint(20) DEFAULT NULL,
  `ext` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '扩展字段信息(通常以json存储)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='第三方登录表';

第三方登录表数据示例:

         当我们需要对接一种新的第三方时,仅仅需要在login_type中维护一个新的枚举项即可,该新的登录类型所需要的扩展信息,可以存储到ext字段中,以微信登录-PC扫码登录为例,openId作为身份信息字段存储到principal中,
而凭证信息暂时没有不需要存储,ext字段中可以存储unionid、nickname、openid等原始信息。

 

 

 

 

管理信息系统(简称MIS)是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。在21世纪信息高速发展的时代中,管理信息系统具有很重要的作用,它的预测和辅助决策的功能,即利用现代管理的决策和支持。 管理信息系统是一个由人、机(计算机)组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。它能观测企业或组织的各种运动情况,利用过去的数据预测未来;从全局出发辅助决策;利用信息控制企业或组织行为,帮助其实现长远的规划目标。简言之,管理信息系统是一个以计算机为工具,具有数据处理、预测、控制和辅助决策功能的信息系统。 管理信息系统是一个人机系统,同时它又是一个一体化集成系统。管理信息系统是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,最终为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。 管理信息系统的基本结构可以概括为四大部件,即信息源、信息处理器、信息用户和信息管理者。因此,一个成功的管理信息系统应该具有可靠的硬件、实用的软件、强有力的现代化管理水平。具体讲,管理信息系统的三大支柱是:计算机网络、数据库和现代化的管理,这三打支柱称为管理信息系统的扩展部件。 1.2数据库应用系统开发简介 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。 数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。 数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李桥s2008100262

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值