+ -
当前位置:首页 → 问答吧 → 数据库的属性表的设计原则

数据库的属性表的设计原则

时间:2009-06-08

来源:互联网

本帖最后由 evangui 于 2009-6-8 22:24 编辑

一 基本说明:

设计属性表,类似于设计分类关联表。也需要3个表:
1. 基本信息表(其中包括表字段内容固定或者说是公共的信息)
2. 属性字段表:需求经常变动的属性,非公有属性(可以额外扩展分类信息到上面,变成一个假的2维信息表)
3. 属性值表。属性与基本信息的2维关联表(id记录)

二 示例:

以下只做基本意图说明,一时之间字段设计不完善。

1. 商品基本信息表


商品id
商品名
分类id
商品原始价格(元)
是否打折
商品说明
1
《数据库设计技巧》
11
31

讲解数据库设计的相关技巧
2
美的空调
12
2050

美的空调…

2. 商品属性表(针对临时需求,或是不常用的商品属性,而且这些属性是不固定添加进来的,不像一般可以做个附属表完事)


属性字段id
属性名
1
商品折扣率
2
商品折扣周期
3
商品出版社(只针对书籍有用,所以设计到属性表里面很合适)

3. 商品属性值表


商品与属性的关联id
商品id
属性字段id
关联值(也就是商品在该属性字段的值)
1
1
3
机械工业出版社
2
2
1
80%
3
2
2
30天


三 小结

个人认为属性表的设计原则是:
1. 实际应用中,属性表的查询不应该出现在与商品表的联合查询中 。例如属性字段表,中的出版社,如果所有商品都是书籍的话,显然这个字段就不要出现在属性表里面。
而是放到商品的基本信息表。因为根据出版社查询书籍,是一个常见应用。而如果商品种类不限于书籍,那么这个字段就可以放到属性表里面了,因为想对商品进行出版社的查询的应用,
不会经常出现(一般简单的系统中,就根本不会出现)。
2. 动态属性
3. 非公有属性
    实际还是说的第一点

以上只是个人经验总结,如有不当或遗漏之处,欢迎指正。


发表于本人博客:http://www.guigui8.com/index.php/archives/285.html
欢迎去踩踩^_^

作者: evangui   发布时间: 2009-06-08