Мне нужно создать таблицу со следующими полями
user_id, email, password, firstname, lastname, status, created.
Выборка будет в основном проводиться по id (он будет уникальным AUTO_INCREMENT), также как я понимаю нужно его сделать PRIMARY KEY.
Также будет выборка по email и password, поэтому возможно будет смысл их сделать индексами? И если использовать индексы нужно какой-то специальный запрос писать?
Вот, что получилось
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE users ( user_id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, email varchar(100) DEFAULT '' NOT NULL, password varchar(40) DEFAULT '' NOT NULL, firstname varchar(32) DEFAULT '' NOT NULL, lastname varchar(32) DEFAULT '' NOT NULL, STATUS varchar(10) DEFAULT '' NOT NULL, created Datetime NOT NULL, PRIMARY KEY (user_id), KEY email (email), KEY password (password) ) ENGINE=`InnoDB` CHARACTER SET `utf8` COLLATE `utf8_bin`;
Эти данные будут редко меняться, но нужно также сохранять sessionid каждый раз при авторизации (очень часто), думаю стоит создать новую таблицу
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE user_session_id ( id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, user_id mediumint(8) UNSIGNED NOT NULL, session_id varchar(100) DEFAULT '' NOT NULL, PRIMARY KEY (?), ) ENGINE=`InnoDB` CHARACTER SET `utf8` COLLATE `utf8_bin`;
Здесь выборка будет по user_id, что назначить как PRIMARY KEY id или user_id?
Подскажите, пожалуйста.(Отредактировано автором: 11 Июня, 2013 - 00:38:53)
|