行,所以现在可以明白,SO的搜索系统是围绕标签主要根据,他们所使用的标签系统是一个很好的人,但我想要做的就是复制它为我自己的项目。Stackoverflows标签系统,我如何
现在我能理解如何使用外键等,但我不能完全确定它是如何在这里开发的,他们使用3台或2等
他们是如何开发它,你可以给我看一些MySql的例子?
行,所以现在可以明白,SO的搜索系统是围绕标签主要根据,他们所使用的标签系统是一个很好的人,但我想要做的就是复制它为我自己的项目。Stackoverflows标签系统,我如何
现在我能理解如何使用外键等,但我不能完全确定它是如何在这里开发的,他们使用3台或2等
他们是如何开发它,你可以给我看一些MySql的例子?
SO考虑的问题和答案是同样的事情 - 一个Post
。这里是一个精简的MySQL相当于表:
DROP TABLE IF EXISTS `example`.`post`;
CREATE TABLE `example`.`post` (
`postid` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`postid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
标签都存储在一个典型的类型代码表:
DROP TABLE IF EXISTS `example`.`tags`;
CREATE TABLE `example`.`tags` (
`tagid` int(10) unsigned NOT NULL auto_increment,
`tagname` VARCHAR(45) NOT NULL,
PRIMARY KEY (`tagid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
关联标签的一个问题/后记录在数据库中多对-many表 - 在做,这就是所谓的POSTTAGS
:
DROP TABLE IF EXISTS `example`.`posttags`;
CREATE TABLE `example`.`posttags` (
`postid` int(10) unsigned NOT NULL auto_increment,
`tagid` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`postid`,`tagid`),
KEY `fk_tag` (`tagid`),
CONSTRAINT `fk_post` FOREIGN KEY (`postid`) REFERENCES `post` (`postid`),
CONSTRAINT `fk_tag` FOREIGN KEY (`tagid`) REFERENCES `tags` (`tagid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
的POSTTAGS
表:
如果你想看看SO模式,check out the Stack Data Explorer - 当你编写一个查询, SO模式在右侧可用。
感谢您的回答,我去把它现在在做我自己的样品看看有什么我可以用它做什么! thansk – RobertPitt 2010-08-22 16:59:03
如梦:)三江源,这里有一些好人缘(Y) – RobertPitt 2010-08-25 14:31:06
相关:http://stackoverflow.com/questions/3539744/best-way-to-store-tags-in-a-database – 2010-08-22 15:58:21
也相关:http://stackoverflow.com/questions/3152850/best-方式到店-A-许多一对多的关系,在MySQL的 – quantumSoup 2010-08-22 15:59:41