Я понимаю важность солей, хэшей и всего такого хорошего для паролей.Мой вопрос связан с теорией реляционных баз данных.
Мое понимание 3-й нормальной формы заключается в том, что каждый элемент должен предоставлять факт о ключе, всем ключе и ничего кроме ключа (так что помогите мне Codd. Спасибо Википедия),Итак, я просматривал некоторые из своих таблиц и наткнулся на это.
-- Users
CREATE TABLE accounts(
player_id mediumint NOT NULL AUTO_INCREMENT, -- Surrogate Key
username VARCHAR(32) UNIQUE NOT NULL, -- True primary key
salt char(29), -- Passwords are stored in bcrypt hash
hash char(60), -- Salt + Hash stored
created DATETIME,
lastlogin DATETIME,
PRIMARY KEY (player_id)
) ENGINE = InnoDB;
Вопрос: эта таблица в 3-й нормальной форме?Насколько я понимаю ... "Hash" зависит от player_id и соли.IE: hash -> (имя пользователя, соль).
Я просто не вижу никакой реальной выгоды от разделения этой таблицы.Но я волнуюсь, что возможно обновление аномалии или что-то, что я не вижу.