1

mysqlの主キーと一意の制約について質問があります。Webサイトへのメンバー資格情報のテーブルを作成しています。メールアドレス、ユーザー名、dobなどの属性があります。

ほとんどのWebサイトでは、電子メールアドレスを最大で1つのユーザーアカウントに関連付けることができると思います(これが当てはまるかどうかはわかりません)。そこで、主キーとしてメールを設定しました。ただし、ユーザー名も一意である必要があり、nullにすることはできません。これをどのように表現するかわかりません。ユーザー名に一意の制約を作成し、それをnullではないと明示的に宣言する必要がありますか?これにはトリガーが適切ではないと思います。より良い解決策はありますか?ありがとう。

4

1 に答える 1

1

このようなことを試してください、

CREATE TABLE tableName
(
    userName VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    -- other columns here .....
    CONSTRAINT tb_PK PRIMARY KEY (userName),
    CONSTRAINT tb_uq UNIQUE (email)
)
于 2012-11-18T21:12:30.137 に答える