#mysql #schema
#mysql #схема
Вопрос:
Мне нужна помощь в настройке моей базы данных MySQL.
Я хотел бы, чтобы в базе данных была таблица с именем accounts. Все учетные записи пользователей будут храниться в этой базе данных. Учетная запись пользователя будет иметь ключи:
- Имя
- Фамилия
- Эл. адрес
- Имя пользователя
- Пароль
- Дата последнего входа в систему.
Я был бы очень признателен, если бы вы могли сказать мне, как должна выглядеть схема для этого.
Ответ №1:
CREATE TABLE `MyDatabase`.`accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`FirstName` VARCHAR( 32 ) NOT NULL ,
`LastName` VARCHAR( 32 ) NOT NULL ,
`Email` VARCHAR( 64 ) NOT NULL ,
`Username` VARCHAR( 32 ) NOT NULL ,
`Password` CHAR( 32 ) NOT NULL ,
`LastLoginDate` DATE NOT NULL
)
Предполагается, что вы используете хэшированный пароль MD5 (длиной 32). Замените MyDatabase именем вашей базы данных.
Комментарии:
1. Итак, вам нужно создавать новую таблицу для каждого пользователя?
2. Нет чтобы добавить пользователя, вы должны использовать синтаксис MySQL «INSERT INTO». Например: ВСТАВИТЬ В учетные записи (имя, фамилия, Электронная почта, имя пользователя, пароль, lastLoginDate) ЗНАЧЕНИЯ («Джон», «Смит», «Jsmith@gmail.com «, «jsmith», «jsmithpasswordhash», «дата»)
3. Блестяще, спасибо. Еще одна вещь для вас, не могли бы вы сказать мне, как я мог бы изменить параметры сортировки вновь созданной таблицы на UTF-8?
4. ИЗМЕНИТЬ НАБОР СИМВОЛОВ учетных ЗАПИСЕЙ ТАБЛИЦЫ utf8
Ответ №2:
Я думаю, вы имеете в виду, что учетная запись пользователя будет иметь эти столбцы. Конечно, это не все ключи-кандидаты.
Нет идентификатора учетной записи? Разве это не был бы лучший уникальный первичный ключ?
Я вижу, где предложенные вами столбцы будут находиться в таблице user / customer; имя пользователя и пароль (зашифрованные и сохраненные, конечно) будут в таблице учетных данных. У меня не было бы ничего из этого в таблице account. У меня был бы внешний ключ, указывающий на пользователя, которому принадлежала учетная запись.