バックエンドでphp-MySQLを使用するプロジェクトに取り組んでいます。閲覧するさまざまな記事があり、さまざまなカテゴリとユーザーログインシステムに分類されています。
最近、ユーザーがウォッチリスト/ダッシュボードに記事を追加できるウォッチリスト機能を追加しました。次のテーブルがあります。
記事テーブル
article-id(int) Primary-Unique
cat(varchar)
name(varchar)
subCat(varchar)
description(varchar)
date added
users table
username(varchar) Primary-Unique
lname
fname Joined
-date
. ウォッチリストテーブル
article-id(int)
ユーザー名(varchar)
date_watch
ご覧のとおり、ウォッチリストテーブル
には一意のキーがありません(username + article-id)を一意のペアにしたいすべてのユーザー名に対して複数の article-id が存在し、その逆も同様なので、
行を挿入および削除
したいだけです。重複エントリを防ぐ方法を更新する必要はありませんか?
今までphpで行数をチェックしていました
"SELECT * FROM watchlist WHERE article-id={$id} AND username={$user}"
で、もし
mysql_num_rows() >1(not allowed to insert)
これは正常に動作しますが、誤って INSERT コマンドが実行された場合、エントリが重複
してしまいます。それを防ぐ方法は?
私はphpmyadminを使用しています