Я сам часто использую enum, но нужно понимать их ограничения/особенности и не лепить бездумно. Рекомендую почитать книгу
SQL Antipatterns. Там есть неоднозначные советы, но она по крайней мере даст пищу для размышлений.
Наверное, всё же я сделал бы отдельные таблицы для секторов и рядов сектора, потому что сейчас
считается, что столько-то секторов, рядов и мест, а потом вдруг
станет считаться иначе. А в таблице мест ссылался бы только на нужный ряд сектора.
То, что вы вынесли брони из пользователей совершенно правильно, не место им там.
А вот таблица броней странная:
- Зачем там булево поле, если это и так брони? Может быть незабронированная бронь?
- Где ссылка на забронировавшего пользователя? Она может быть в таблице броней или в отдельной таблице, но без неё не обойтись.
- Зачем ссылаться и на место и на ряд, если место уже привязано к ряду? Причём в таблице мест ряд - просто int, а в бронях ещё и внешний ключ.
- По хорошему, места резервируются на какие-то события, а не навечно, поэтому для полноты картины необходимо их добавить.