关于数据库设计,首先需要明确的就是整个项目的设计是围绕数据库结构来实现的,也就是说数据库一旦设计好就不能随意改动,因为一旦改动对数据库的访问代码就很容易出现问题,相当于对整个项目需要改动,这也就意味着设计数据库需要从拓展的角度来实现, 比如说一个用户表,一个最简单的用户登陆只需要用户与密码,倘若当前阶段我只考虑用户的账号与密码两个字段,那么我只需要子啊用户表中设定两个字段即可,但如果有一条我需要增加功能,比如加一个个人设置功能,用户能添加图像,有个性签名等,那么该表就不能实现该拓展,也就意味着原来的数据库不能用了,需要重新定义数据库并且改动整个项目中用到该表的代码,其过程是十分复杂且不必要的。
另外需要注意的就是在建多少表的问题。我可以设置一个字段很长的表,或者很多字段很少的表,两者的首先考虑基于面向对象的思想,把一个类的属性设为一个表,按照层次来建表,这样表与表之间的联系关系比较清晰,比如我们项目中的门店,类别,商品三个类,三者之间是商品->类别->门店,我们可以建一个表按照门店属性-类别属性-商品属性的格式,也可以建三个表设置主外键连接。但是前者存在两个问题:当我修改门店属性时要修改很多行,操作繁琐,另外当我只想得到门店属性时会得到类别与商品的属性,安全隐患很大。但也不是表越多越好,还是要从综合角度去考虑,最为合理。
另外就是建表时记得加注释