比如一个新闻是二级分类:
一级分类:donet 二级分类 asp.net, c#.net, vb.net
donet.id=1 ; asp.net.id=2 ; c#.net.id=3 ; vb.net.id=4查一级分类donet的文章: 文章表是有一级分类id字段好,还是没有好呢
1.如果有一级分类id字段: Select * from article where cid=1
2.如果没有的话: Select * from article where cid IN (2,3,4)这两中方法从性能来说那中好, 如过从综合方面考虑哪个好?
一级分类:donet 二级分类 asp.net, c#.net, vb.net
donet.id=1 ; asp.net.id=2 ; c#.net.id=3 ; vb.net.id=4查一级分类donet的文章: 文章表是有一级分类id字段好,还是没有好呢
1.如果有一级分类id字段: Select * from article where cid=1
2.如果没有的话: Select * from article where cid IN (2,3,4)这两中方法从性能来说那中好, 如过从综合方面考虑哪个好?
解决方案 »
- 碰到了SQL注入与提交事件冲突
- 图片显示不了
- 粘贴到freetextbox带格式问题
- 关于自定义空间动态生成的问题求教!
- 100分 请问为什么基于BS的系统,网站,注册不能用 中文 用户名 ,这是出于对什么的考虑?
- 请问在vs2003下如何使用ajax?
- 如何在 dataadapter中使用参数查询
- 通过webservices访问接口时出现异常,被阻止。。。
- ★ 在<%# %>中这样写对吗?
- 对话框的问题?这个问题已困了我许久了?望各位高手指点一二!
- SESSION和COOKIE有啥区别?
- [高分求助]sockets邮件发送的问题,AUTH LOGIN后发用户名时验证失败,请教思归,孟子等高手.
则一级分类:donet 记录(1, 0 , ‘donet’)
二级分类:asp.net 记录 (2, 1, 'asp.net')
...
把一级分类ID和二级分类ID都放进文章表,会造成冗余,不符合第三范式。
则文章表可设计为:文章ID 分类ID ...
如果要找出完整的文章分类路径,可以用2次join连接分类表。性能来说一般还行,当然比直接一次连接差点