查看文章
 
可扩展的mysql字段设计
2009-07-20 9:44

我们系统博文数据库的设计原来是这样的 status字段代表博文状态,目前存在如下几个值 0:正常,2:删除,3:草稿箱.增加其它应用的时候,一般都是扩字段.
比如要增加加密属性.从而带来二个问题,数据库字段的横向扩展非常麻烦,数据库索引的建立及其浪费,尤其同时比如查询正常并加密的文章.

本次使用tinyint的类型存储文章的各种状态,比如tinyint可以存储8个bit,就可以存储8种数据库状态,比如
7    6    5   4    3    2   1    0
保留 保留 保 推荐 置顶 草稿 删除 正常
上面的值代表:
0:表示正常文章
2:表示删除文章
4:表示草稿箱文章
8:表示置顶文章
排列组合:
3:表示正常/删除文章
6:表示草稿/删除文章

SQL语句中提供了位操作运算符,可以查询各种组合
select * from table where status & 2 = 1 ; 表示查询删除文章
select * from table where status & 3 = 1 ; 表示查询正常及删除文章

这样设计后,应用的增加对数据库查询的影响非常小。


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(324)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu