首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

经典商城数据库设计中的几个问题

1.公共表、扩展表、搜索组件的思路

(1)公共表:提炼商品公共的信息放到数据库,例如商品id、名称、发布的商家、发布日期、上架状态等。

(2)扩展表:将变化的信息放到另外一个表,可以是数据库表,例如电脑商品一个表、服装一个表;也可以将信息放到MongoDB或者ElasticSearch这类文档数据库。

(3)搜索组件:扩展表在全文搜索的时候不好实现,因此需要独立的组件负责搜索,可以用Elastic Search或者Solr来冗余一份数据,用于搜索。

2.Magento(麦进斗)的方式

Magento(麦进斗)开源、设计灵活,具有模块化架构体系和丰富的功能,易于与第三方应用系统无缝集成。其强大的商品属性系统能够支持任意商品类型,无论是服装、手机还是书刊,它都能完美支持商品的所有属性,且能灵活地修改和管理。

3.电商系统数据库结构设计的一个实例

Ecshop电商系统架构数据库设计及字段说明(88张数据表):

http://book.ecmoban.com/images/db.htm

4.取消外键约束

互联网产品往往一两周迭代一个版本,业务变更频繁,不推荐使用外键,SET FOREIGN_KEY_CHECKS=0。用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,也即让应用服务器承担此部分的压力,而应用服务器一般都是可以做到轻松地水平的伸缩。

5.大数据时代的假删除

添加个标志字段,0表示删除1表示未删除,查询的时候根据这个字段判断更改数据的状态,记录没有被物理删除。用假删除管理数据时,外键约束会不太好用。

6.扩展字段

(1)version+ext。即在表后面增加version、ext字段,version用来描述对应的版本,ext存放map的json数据,如。

优点:可动态随意增加字段,支持多个版本的扩展。

缺点:ext不支持索引,key名称大量冗余,所以key命名尽量短,可使用编码。

(2)key+value。即增加一个纵表,包括外键ID、key、value。

优点:可动态随意增加字段,key支持索引。

缺点:key名称大量冗余,所以key命名尽量短,可使用编码。

7.英文命名

尽量使用英文命名。这符合“国际化”i18n(英文单词 internationalization的首末字符i和n,18为中间的字符数)。

8.迭代设计数据库

一对一、一对多、多对多,这些表与表之间的关系,基本开始就可以确定。但是,有些字段信息也许会随着开发过程出现迭代。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G018NN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券