Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

(Для профи)Как правильно построить бд для аккаунта в sql

Иван Слинский Ученик (110), на голосовании 1 год назад
У меня есть сайт,с нуля делаю.
ПОльзователь регистрируется и входит в акк.
Рядом с данными типо имя пользователя почта пароль и тд есть столбец "status" и там написано у всех активных пользователей "Active" или я допустим забаню пользователя там будет "banned".
И при каждом открытии какой либо страницы будет запрос в бд с проверкой забанен ли пользователь.
Я построил такую систему,простую.Или можно по лучше кто что скажет. Сойдет или нет
Голосование за лучший ответ
фигня какая-та Мастер (1002) 1 год назад
т.е. у тебя есть стринговый столбец status, в котором ты пишешь active/banned?
в бд все строки имеют статичный размер, т.е. с каждой новой строкой у тебя в памяти будет на N байт больше, где N - размер/длина колонки.

если у тебя статус может принимать только два значения, лучше делать его однобитовым со значением 0 (banned) и 1 (active) - как пример. Или если назвать столбец banned, то наоборот 0 (active) и 1 (banned).

если немного больше значений, то можно сделать его однобайтовым.
это лучше чем string в данном случае

в коде потом просто работаешь через enum для удобства
Night Prowler Мудрец (15236) 1 год назад
Если у тебя строковое поле небольшое, то для сайтов начального уровня это сойдёт.
В запросах избавляет от лишних INNER JOIN, легко масштабируется, легко читается. Не вижу смысла городить еще одну таблицу статусов с внешними ключами.
EVK IT Сервис К Мыслитель (5226) 1 год назад
Можно в базе использовать поле так:
 `status` TINYINT(1) NOT NULL DEFAULT '1' 
Место мало и флаг 1 - активный или 0 - отключен\забанен и быстро проверяет, не как строку.
Похожие вопросы