往往,系统在刚开始设计的时候到需求分析结束的时候就需要建立实体表了,表的完成表明后台逻辑一大半就完成了,只有最后的实现了,从建表的能力可以看出编程经验。下面我谈谈该怎么建表。

表名的命名:

以我完成的电子商城项目来说:表的命名如下

商城系统的mysql数据库 商城数据库表设计总结_字段

可以看到E-R图如下:

商城系统的mysql数据库 商城数据库表设计总结_字段_02

总结如下:

1.关于主键UUID生成然后插入数据库和主键自增的选择

   选择主键自增,一般来说,在中小型项目中,主键自增的性能更优,在大项目当中,UUID的效率可能是最理想的,但是我们一般有主键自增就好了。

2.思考字段的顺序

  以用户为表为例,第一,先想用户表本身的属性如姓名,密码,性别,地址等等,建立相应字段,第二,思考有无状态位,如用户账号是否激活(默认未激活),这时,我们应该建立一个状态位激活栏字段,默认为0,第三,思考有否多个用户对应1个关系,如果有将少的表ID插入,如,多个用户对应一个角色,将角色ID插入,再如多个用户对应一个部门,将部门ID插入用户表。第四,思考有无多对多关系,如有建立中间表。如:用户和商品收藏表是多对多关系,应该建立1个用户收藏中间表。第五。多思考一些可能会用到的字段可能会空出来,但没有关系。

如此循环一张表的大体字段就全部思考到位。

3.宁愿空字段,也不要事后再改表结构,那样,非常麻烦

  如:我在设计的时候,原先并未打算设计多种角色,但是随着项目的需求变化,需要加入这一模块,这时候如果数据库表的设计没有事先料想到,表的结构就需要大的改变。特别很多框架都是由表来建立实体类,这时还要改代码,就很烦了。如果事先全部想好,就算没有用上,字段为空,还有一张表为空。这没关系,最后删掉就好,空着也行。

就是宁愿空字段也要多设计字段

把握了这些建表就不是难事了(前提是你要理清你的逻辑)

电子商城项目带数据库:


电子商城基于jsp,servlet,javabean开发,具有增删查改,ajax,异步.实现了下订单,实现了支付功能。后台增删查改以及添加修改商品的属性是否为新品是否为热销是否是特价。初级入门项目,界面用户体验好。

后台登录注册后台管理界面添加商品

github地址:

https://github.com/gb1998/shop