现在的位置: 首页 > 综合 > 正文

标签设计

2013年02月08日 ⁄ 综合 ⁄ 共 719字 ⁄ 字号 评论关闭

首先得明白标签到底是用来干什么的?

打个比方,我的文章中加入标签长城、故宫。别人的文章中也有长城。。。。我搜索长城,这时就会出来关于标签为长城的所有文章。这就是标签的作用。

用like来做标签功能,方法:

如果我储存标签的时候是这样的:AAA;BBB;CCC ,空格表示隔开标签,注意最后一个也要带空格,原因对应着下面。

然后我like的时候就这样,like "%AAA;%",注意后面带着;。当用户输入AAA,而后台自动处理加上个;。而如果标签输入AA的话,再like "%AA;%",这样找的话精确度就高点。缺点就是如果每个文章都有很多的标签,那么查询起来效率很有点低。目前只想到一个办法就是控制标签数量,不超过5个。

我是这样设计关于带标签功能的数据库的:

直接在文章的表中来建个标签字段。这样更方便管理。

这样看来我以前做的tag表可以删除了,以前是这样做的,表tag,字段IDartId(关联文章id),tag(这个tag里只允许存一个标签),这个好处就是要查询某个标签就直接select * from tag where tag = ?就可以了,但是很不好的一点就是文章多了,标签多了,那数据会有多少,查询效率会很低。

再来看以前做的文章分类。由于要进行上移下移操作,所以不能删除这个表。以前是这样设计上移下移操作的,设计了一个parentId,当加入新的分类的时候会自动添加parentId,此时的parentId与Id值相同。如果要进行上移或者下移操作,只用从jsp页面传id和parentId到action中,然后再交换parentId就行了。但是这样存在许多的问题。现在换了个方法,就是直接交换分类名就行了,不交换parentId。

抱歉!评论已关闭.