我工作的一個網站,用戶可以使用此表結構發表文章:mysql的「喜歡」結構表
CREATE TABLE IF NOT EXISTS `articles` (
`id_articles` int(10) unsigned NOT NULL AUTO_INCREMENT,
`id_users` int(10) unsigned NOT NULL,
`articles` text NOT NULL,
PRIMARY KEY (`id_articles`),
UNIQUE KEY `id_articles` (`id_articles`),
KEY `id_users` (`id_users`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
每個用戶可以「喜歡」的文章。
是,下面的正確的方式來創建一個「如表」:
CREATE TABLE IF NOT EXISTS `articles_likes` (
`id_articles` int(10) unsigned NOT NULL,
`id_users` int(10) unsigned NOT NULL,
KEY `id_articles` (`id_articles`,`id_users`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
是看起來不錯,你會像 'WHERE id_user = X',查詢最佳性能..但是我會用'id_articles'和'id_users'來創建一個複合主鍵,這樣你就只能像這樣一篇文章一樣。 – bitWorking 2013-02-19 14:33:40
在添加'like'之前,我還可以檢查id_articles和id_users是否在這個表格中。 – Chris 2013-02-19 14:58:28
是的,你可以......但你永遠不知道數據是如何進入db不久(web服務等)的,而且使用主鍵可以確保永遠不會有雙重入口 – bitWorking 2013-02-19 15:02:51