比较三种分类的数据库设计?分不够再加100!

joinrry 2004-06-20 05:08:32
第一种:4个表 实现四级分类
一级表:ID1,IDName
二级表:ID2,IDname,FID(上一级id)
三级表:ID3,IDname,FID(上一级id)
四级表:ID4,IDname,FID(上一级id)

第二种:用树形结构表实现无限制级分类
表结构:id,fid(上一级id),idname

第三种:用编码的形式将fid和id的信息放在一个表里
用32(4+7+7+7+7)位整数来编码,其中,第一级分类有4位,可以表达16种分类。第二级到第五级分类分别有7位,可以表达128个子分类。
易趣好像就用的是这种方法

我现在有个网站商品种类信息非常多,而且不断变化
请问我用那种方法好一点?

第一种效率我觉得还可以 调整分类也还方便,就是级数固定,有些商品只有两级分类就不好处理了

第二种调整分类 级数变动都很方便,但听说分类达到几千之后效率就比较低了

第三种我没用过 不知道实现起来方便不?

大家帮我比较比较阿






...全文
91 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yeeshengwei 2004-06-21
学习......
回复
zjcxc 2004-06-20
个人意见:

第1种比较死板,而且用四个表,还不如用一个表,不喜欢,排除

第2,3种是比较常见的设计方法

第2种的优点很明显,支持无限分级,类别的调整也非常方便
缺点是数据量大的时候,要分级统计效率比较低

第3种在分级统计上比较容易处理,但不可能实现无限分级,分类的调整也比较麻烦
不有一个比较致命的问题,每级宽度是固定的,如果设计的时候,某个级别的宽度定义错误,就会千万较大的麻烦
在检索速度上,字符型比较数字型低


鉴于你的商品种类信息经常发生变化的情况,建议你用第2种,只要你的算法合理,效率不会太低
回复
dut 2004-06-20
个人倾向用第二种,至于效率问题,可以对id,fid加索引以及优化查询来解决
回复
dut 2004-06-20
另外两种主要看你的取舍,如果注重效率,选择1,如果注重适应性,选择2

回复
dut 2004-06-20
首先,应该排除第三种,因为第三种固定只有四级,位操作比较麻烦,唯一的好处是节省空间,但是位操作对效率影响太大。

回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2004-06-20 05:08
社区公告
暂无公告