но это будет заниматься слишком много памяти
Почему boolean использует больше памяти чем byte?
Сколько скайп хранит у себя удалённые учётные записи с переписками?
PROC CheckBanned(userId)
BEGIN
проверка ban_expired_date для этого userID: если expired, то is_banned = false и, при необходимости, записать в историю банов время от и до
вернуть значение is_banned
END