2017-03-06 24 views
-1

良い日々の人たち、MySqlの成績表を使って、生徒の記録をPHPを使って挿入します。私は、期間/期間の間、スコアを繰り返す学生は避けたい。私が意味することは、学生は、term(periodOne)テーブル内の科目(数学)に対して2つの等級/得点を持つことができないということです。これをMySqlやPHPでどうやって達成するのですか?ここに私のテーブルの様子があります:mysqlのフィールド値の重複を避ける方法

table periodOne (
    id int AUTO_INCREMENT, 
    studentId int, 
    subjectId int, 
    score 
) 

追加情報が必要な場合は教えてください。ありがとう!!!!!!

+0

複合主キーを使用するか、毎回既存のエントリを最初にチェックします。 –

+0

ホールテーブルでユニークでなければならないフィールドには、mysqlの 'UNIQUE'フラグ/キーを使います。 – JustOnUnderMillions

+0

@fireball自動増分フィールド(id)は、このテーブルの主キーです。コンポジットの主キーはその存在と連動しますか? –

答えて

0

このように、mysqlのユニークな制限を追加する必要があります。ALTER TABLE periodOne ADD CONSTRAINT uc_check UNIQUE(studentId, subjectId)。また、INSERTを行う前に既存の行がないことをPHPに確認する必要があります

0

重複しない値を必要としないUNIQUE CONSTRAINTを使用して属性を "一意"として宣言できます。

スコアが他のテーブルに依存している場合は、複合主キーを使用することもできます。

+0

正解、それに釘付け。 –

関連する問題