(Для профи)Как правильно построить бд для аккаунта в sql
Иван Слинский
Ученик
(110),
на голосовании
1 год назад
У меня есть сайт,с нуля делаю. ПОльзователь регистрируется и входит в акк. Рядом с данными типо имя пользователя почта пароль и тд есть столбец "status" и там написано у всех активных пользователей "Active" или я допустим забаню пользователя там будет "banned". И при каждом открытии какой либо страницы будет запрос в бд с проверкой забанен ли пользователь. Я построил такую систему,простую.Или можно по лучше кто что скажет. Сойдет или нет
т.е. у тебя есть стринговый столбец status, в котором ты пишешь active/banned? в бд все строки имеют статичный размер, т.е. с каждой новой строкой у тебя в памяти будет на N байт больше, где N - размер/длина колонки.
если у тебя статус может принимать только два значения, лучше делать его однобитовым со значением 0 (banned) и 1 (active) - как пример. Или если назвать столбец banned, то наоборот 0 (active) и 1 (banned).
если немного больше значений, то можно сделать его однобайтовым. это лучше чем string в данном случае
в коде потом просто работаешь через enum для удобства
Если у тебя строковое поле небольшое, то для сайтов начального уровня это сойдёт. В запросах избавляет от лишних INNER JOIN, легко масштабируется, легко читается. Не вижу смысла городить еще одну таблицу статусов с внешними ключами.
ПОльзователь регистрируется и входит в акк.
Рядом с данными типо имя пользователя почта пароль и тд есть столбец "status" и там написано у всех активных пользователей "Active" или я допустим забаню пользователя там будет "banned".
И при каждом открытии какой либо страницы будет запрос в бд с проверкой забанен ли пользователь.
Я построил такую систему,простую.Или можно по лучше кто что скажет. Сойдет или нет