• 夺命雷公狗ThinkPHP项目之----商城2数据库设计


    重要难度:五星

    难度:无形

    数据库的设计,就是体现了你对业务逻辑的了解

    数据库设计的好坏,有时候决定了项目的成败

    要点:

    表与表之间的关系(一对一,一对多,多对多)

    每一个字段的数据类型(数值,字符串,日期时间)没有布尔类型,使用tinyint来代替,1是真,0是假

    设计数据库,以商品为例

    找到核心(中心),然后一步步的展开

    核心->商品

    先来初步设计一下商品表的字段:

    名称、价格、图片、颜色、上架时间、各种规格参数、详细描述,库存,品牌、分类。

    品牌和商品是两个不同的东西,设计表的一个理念:一张表表示一种信息。

    如果全部东西都放在同一张表里面那么很容易出现数据冗余-->更新异常、删除异常。耦合性高。

    软件开发的一个理念:低耦合、高内聚。

    如:

    品牌:apple->1984年就诞生了

    商品:iphone6 plus->2014年才有的

    商品和价格是在同一张表里面保存的,有了这个商品就不需要有一个价格,品牌应该独立一张表保存。

    品牌和商品的关系可以从以下两个方面来进行判断

    一个品牌有多个商品,

    如:

    apple下有->iPhone4->iPhone4s->iPad等等

    一个商品对应一个品牌

    如:

    iPhone6 plus 和iPhone6s 他们对应的品牌都是apple

    从以上分析就可以分析出他们之间的关系是:一对多.

    可以通过以下方法来体现他们之间的关系:

    1的一方,称之为父表,多的一方称之为子表。需要在子表中增加一个字段,和主表中的主键进行关联,子表中的这个字段就是外键。

    商品分类信息,同样也单独的保存到一张表中。商品分类表。

    商品分类主要目的就死为了让用户体验度提高.

    不同类型的商品有不同的扩展属性,但常见的分类一般都离不开以下这两种:

    如:

    基础信息:所有商品都具备的属性,如商品名,压缩图,和价格等

    扩展信息:不同的商品他的扩展信息是不同的,如服装,有材质,颜色,做工,手机则具备 屏幕尺寸,操作系统,内存大小,摄像头,书籍具备 出版社,作者等等。

    不同类型的商品,他有不同的扩展属性。

    首先需要把这些扩展保存起来此时就有了两种表,如:goods_type和attribute表,attribute存到属性本身,不是某个商品的属性。

    商品和属性之间的关系就如我们常见的学生管理系统的表结构,如下图所示:

    上面的选修情况表就是为了决解多对多的问题,需要引入第三张关联表。

    本项目商品模块的表设计ER图如下所示:

  • 相关阅读:
    Vue基础---官网
    echarts 4.0+画全国地图(省 市 区),地图撒点---vue项目中实战
    comeBack
    vue项目知识点汇总
    开发小总结
    Angular ---小demo体验angular项目开发知识点
    Angular ---小demo体验angular项目开发知识点2--angular中的表单验证、路由、路由守卫、http、http拦截器
    TypeScipt介绍
    Angular基础知识---模块、装饰器、组件、如何创建组件、事件处理机制、插值表达式(双括号)
    mybatis传递多个参数的三种方式
  • 原文地址:https://www.cnblogs.com/leigood/p/4941565.html
Copyright © 2020-2023  润新知