1

このテーブルでユーザーごとのエントリ数を制限したい場合:

CREATE TABLE `connections` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) unsigned NOT NULL,
  `word_id` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `No duplicates` (`user_id`,`word_id`),
  KEY `word_id` (`word_id`),
  CONSTRAINT `connections_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `connections_ibfk_2` FOREIGN KEY (`word_id`) REFERENCES `words_en` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

この制限は変更される可能性があり、別のテーブル settings に保存します。

最初に SELECT を実行し、PHP を比較して INSERT を実行する必要があります。または、この種の操作を INSERT クエリで直接行うメカニズムはありますか?

4

1 に答える 1