我想做个网站,包含tag标签的,相信大家都见过 但不知道数据库怎么设计比较合理 。今天搜索了下
总算有思路了。
如果TAG没有层次关系就很简单,只需要建立一个TAG表,用户输入TAG后先查询该表,如果已经有,就不用再加入,如果没有就加了
因为有很多同义词和标准用语的问题,所以最好在前台设置提示,智能提示功能,如输入电,就会出现已经有的TAG,用户只要选择电影或者电视就可以
引用一篇文章 原文:http://www.21andy.com/blog/20071222/769.html
说说wordpress和sablog在tag数据库结构设计和程序方面的差别
sablog的sablog_articles表
`keywords` varchar(
120
) NOT
NULL
default
''
,
keywords字段: 以 "," 分隔所有这篇文章使用到的tag
sablog的sablog_tags表
CREATE
TABLE
IF
NOT
EXISTS
`sablog_tags` (
`tagid` int ( 11 ) unsigned NOT NULL auto_increment,
`tag` varchar ( 100 ) NOT NULL default '' ,
`usenum` int ( 11 ) NOT NULL default ' 0 ' ,
`aids` text NOT NULL ,
PRIMARY KEY (`tagid`),
KEY `usenum` (`usenum`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8 ;
`tagid` int ( 11 ) unsigned NOT NULL auto_increment,
`tag` varchar ( 100 ) NOT NULL default '' ,
`usenum` int ( 11 ) NOT NULL default ' 0 ' ,
`aids` text NOT NULL ,
PRIMARY KEY (`tagid`),
KEY `usenum` (`usenum`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8 ;
tag字段: 存放tag名称
usenum字段: 存放使用这个tag的文章总数
aids字段: 以 "," 分隔所有使用这个tag的文章id
显示文章tag的时候,是这么写的
$tagdb
=
explode
(
'
,
'
,
$article
[
'
keywords
'
]);
$articletags = $tma
$articletags = $tma