似た/似ていない機能を実装する必要があるプロジェクトでは、パフォーマンスの観点から、どのアプローチが他のアプローチよりも優れているかを知りたいです。挿入削除を使用する必要がある場合、誰かがそれを何度も好き/嫌いにするとどうなりますか(おそらく、主キー番号のほとんどは、好き/嫌いに基づいて占有されます)?
誰かがソーシャルネットワーキングサイトがそれをどのように行うか知っていますか?
編集:
私のテーブルは以下の通りです:
CREATE TABLE `junc_user_share_like` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`jusid` int(10) unsigned NOT NULL,
`liker` mediumint(8) unsigned NOT NULL,
`when` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `jusid` (`jusid`,`liker`),
KEY `liker` (`liker`),
CONSTRAINT `junc_user_share_like_ibfk_1` FOREIGN KEY (`liker`) REFERENCES `user` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `junc_user_share_like_ibfk_2` FOREIGN KEY (`jusid`) REFERENCES `junc_user_share` (`jusid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
編集2:
あなたが最後の更新で言ったように、これは私が推測したものです:
INSERT INTO likes SET jusid=$jusid, liker=$liker
UPDATE junc_user_share SET likes=likes+1 WHERE id=$id
これはいいねには最適ですが、誰かが自分のいいねを元に戻したい場合はどうなりますか?いいねからレコードを削除する必要がありますか?私の問題はまさにここにありますか?ここで何をしますか?