网站系统---数据库的设计

 

 

 

                               网站系统---数据库的设计

 

 

前言:

      每一个完整或系统的的设计初衷,都是为了数据更好的管理和查询,数据库的设计也就是极其的显著和重要。下面是就以例子网上商城的数据库设计聊一聊数据库的设计了。

 


1 表与表之间视图:


                        网站系统---数据库的设计_第1张图片      


 

2 数据库设计:

  2.1用户表:

     * 用户ID

     * 用户名:

     * 密码:

     * 真实姓名:

     * 邮箱:

     * 地址:

    * 电话:

     * 用户状态:   0未激活  1已经激活

     * 激活码:

 

2.2 一级分类:

     * 一级分类ID

     * 一级分类名称

 

2.3 二级分类:

     * 二级分类ID:

    * 二级分类名称:

     * 一级分类ID(外键指向一级分类主键ID)

 

2.4 商品表:

     * 商品ID:

      * 商品名称:

     * 商品商城价格:

     * 商品市场价格:

     * 商品描述:

      * 商品图片:(路径)

     * 二级分类ID(外键指向二级分类主键ID)

 

2.5 订单表:

      * 订单ID

      * 订单时间:

     * 订单金额:

      * 订单状态:

     * 订单地址:

     * 订单电话:

     * 订单收货人:

    * 用户ID(外键指向用户表的主键ID)

 

2.6 订单项表:(需要参与到业务逻辑中)

      * 主键ID

      * 商品ID

     * 订单ID

      * 数量

     * 小计

 

2.7 后台用户表:

     * 用户名:

      * 密码:

 

 

 3  数据库设计注意:

     3.1  主键与外键

      一 般而言,一个实体不能既无主键又无外键。在E—R图中,处于叶子部位的实体, 可以定义主键,也可以不定义主

键(因为它无子孙),但必须要有外键(因为它有父亲)。主键与外键的设计,在全局数据库的设计中,占有重要地

位。当全局数据库的设计完成以后,有个美国数据库设计专家说:键,到处都是键,除了键之外,什么也没有,这

就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度

抽象,主键与外键的配对,表示实体之间的连接。

    

    3.2 完整性约束表现在三个方面

      域的完整性:用Check来实现约束,在数据库设计工具中,对字段的取值范围进行定义时,有一个Check按钮,通

过它定义字段的值城。

     

    参照完整性:用PKFK、表级触发器来实现。

   

   用户定义完整性:它是一些业务规则,用存储过程和触发器来实现。


    3.3 基本表的性质

      基本表与中间表、临时表不同,因为它具有如下四个特性:

       o  原子性。基本表中的字段是不可再分解的。

       o  原始性。基本表中的记录是原始数据(基础数据)的记录。

       o  演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。

       o  稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。


     理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。

 

    3.4 遵循三个范式

       理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范

式(通俗地理解是够用的理解,并不是最科学最准确的理解):

      

       o  第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;

      

       o  第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

      

       o  第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。


      

    

   没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必


须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到


物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

 

                                                     网站系统---数据库的设计_第2张图片

 

 

 

你可能感兴趣的:(java,数据库,设计,三范式,主键和外键)