行,所以現在可以明白,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