У меня есть базовая таблица «пользователей», которую я хочу создать в MySQL.
Я не хочу, чтобы в базе данных появлялись повторяющиеся электронные письма или дублированные имена пользователей.
- Как лучше всего предотвратить это при создании таблицы?
- А в чем разница между:
1.
UNIQUE (имя пользователя),
UNIQUE (электронная почта),
2.
УНИКАЛЬНЫЙ КЛЮЧ (имя пользователя),
УНИКАЛЬНЫЙ КЛЮЧ (электронная почта),
3.
CONSTRAINT ucons_login UNIQUE (имя пользователя, адрес электронной почты),
Я предполагаю, что некоторые из них являются синонимами, но я читал противоречивую информацию в Интернете и искал подтверждение.
Я надеюсь, что кто-то может помочь.
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;