在阅读了这篇资料之后有感,了解数据库设计时需要有长远的眼光。
以商品信息表的设计为例子。(省去其他关联的表)
商品信息表(Wares_info)
名称 类型 约束条件 说明
wares_id int 无重复 商品标识,主键
wares_name char(100) 不允许为空 商品名称
wares_type int 不允许为空 商品类型标识,和Wares_type.type_id关联
wares_info char(200) 允许为空 相关信息
provider int 不允许为空 供货厂商标识,和Wares_provider.provider_id关联
setnum int 初始值为1 内含件数,默认为1
stock int 初始值为0 库存,默认为0
buy_price money 不允许为空 进货价
sell_price money 不允许为空 销售价
discount money 不允许为空 优惠价
当需要添加一个商品图片的字段,不过只有一部分商品有图片时,一般设计思路是添加一张表(因为一个商品的图片有很多张)。
这时候提出新的需求,某类商品全部都需添加“长 度”的属性。
这时候又提出新的需求(有猫饼),某类商品全部都需添加“宽度”的属性。
对,这样每添加一次需求,就要更改数据库表设计。于是就打回重做,来个更人性化的设计(程序员也是人啊)。
在商品额外属性表(Wares_ex_property)中添加2条记录:
ex_pid p_name
1 商品图片
2 商品长度
再在整个电子商务平台的后台管理功能中追加一项商品额外属性管理的功能,以后添加新的商品时出现新的属性,只需利用该功能往商品额外属性表
(Wares_ex_property)中添加一条记录即可。
再次感谢作者分享的经验。
http://blog.youkuaiyun.com/zhuangzhineng/article/details/4029522