随笔分类 -  数据库设计

摘要:NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚。但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题?这个疑惑非常大,为此我看了很多分析文章,但却总感觉是隔靴搔痒。为了一探究竟,半年前我决定用Mongodb这个著名的NoSql数据库做个产品试试。只有在真实的使用环境中才能得到最贴切的感受。一晃眼,半年过去了,现在我能用亲身的体会来谈谈NoSql数据库存在的理由和试图解决的问题了。就像所有的哲学思考都来源于对日常活动的观察一样,我们也从最基本的东西说起吧。来看这样一个业务要求,用户可以为一本书打分,并且写评论。熟悉数据库结构设计的人看到这一 阅读全文
posted @ 2014-01-09 09:55 一束光 阅读(435) 评论(0) 推荐(0) 编辑
摘要:要实现栏目的无限极分类,我们需要对应的数据库表结构,一般情况下,如果结构比较常用[code]id int 自增主键cat_name varchar(256) 分类类别名称parent_id int 0 父母分类Iddepth smallint 1 深度,从1递增id_path varchar(256) 表示从根节点到当前节点的路径的ID分割组合字符串name_path varchar(256) 表示从根节点到当前节点的路径的NAME分割组合字符串status int 0 状态:0禁用,1启用list_order int 0 优先级,栏目排序,同级显示的时候越靠前在对树进行操作时,我们还是如平常 阅读全文
posted @ 2013-08-23 14:25 一束光 阅读(310) 评论(0) 推荐(0) 编辑
摘要:方案一:一个表,里面有个tags字段,存放以空格或逗号分隔的标签。缺点是长度受限,tag个数受限,查询like ‘%abc%’效率低方案二:同方案一,支持全文索引,或者用Lucence索引查询方案三:两个表,第一个表存储对应的文章等,第二个是tags表,存放第一个表的外键和tag的名称。解决了第一个方案的个数受限问题,不过这样的话会有冗余,比如两个表都有同样的tag名,则会出现两次。方案三:三个表,第二个tags表,第三个关联表,典型的3NF,最常规的设计,tag支持树状层级,缺点是千万级数据量的话关联表会非常大!还有第五种第六种方案,比如增加缓存层,把例如针对”TagA+TagB”的查询缓存 阅读全文
posted @ 2013-08-21 16:02 一束光 阅读(1201) 评论(0) 推荐(0) 编辑

友情链接

CFC4N
点击右上角即可分享
微信分享提示