У меня есть базовая таблица users
, которую я хочу создать в MySQL.
Я не хочу, чтобы в базе данных появлялись повторяющиеся электронные письма или дублированные имена пользователей.
- Каков наилучший способ предотвратить это при создании таблицы?
- И в чем разница между следующим:
1. UNIQUE (username), UNIQUE (email),
2. UNIQUE KEY (username), UNIQUE KEY (email),
3. CONSTRAINT ucons_login UNIQUE (username, email),
Я предполагаю, что некоторые из них являются синонимами, но я читал противоречивую информацию в Интернете и искал подтверждение.
Я надеюсь, что кто-то может помочь.
SQL:
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
pass CHAR(40) NOT NULL,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
registration_date DATETIME NOT NULL,
user_level TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
active CHAR(32),
PRIMARY KEY (user_id),
UNIQUE (username),
UNIQUE (email),
INDEX login (email, pass),
INDEX full_name (last_name, first_name)
) ENGINE=INNODB;