Мы занимаемся редизайном и консолидацией некоторых таблиц в базе данных. Там, где у нас когда-то было 2 таблицы, 'administrators'
и 'users
', теперь мы объединяем в одну таблицу с именем 'users'
. Чтобы облегчить это изменение, мы создали таблицу 'user_types' и таблицу 'user_user_types'
, которая является таблицей связи «один ко многим» между пользователями и 'user_types'
.
Причина, по которой мы должны использовать таблицу 'user_types'
, заключается в том, что существуют разные типы администраторов, один из которых является супер-администратором, который имеет доступ ко всему в нашей системе. В старой настройке в таблице 'administrators'
было битовое поле с именем 'SiteAdmin'
, которое указывало, что данный конкретный администратор является супер-администратором или нет. С тех пор, как я перешел на эту новую систему, я подумал, что в таблице 'user_types'
будет тип пользователя, который будет супер-администратором, и мы просто свяжем правильного пользователя с этим типом пользователя в этих случаях, однако, мой коллега-программист говорит здесь он все еще хочет использовать битовое поле 'SiteAdmin'
в новой таблице 'users'. Я думаю, что это немного избыточно, но он утверждает, что будет избыточная нагрузка, и на SQL-сервере будет требоваться больше ресурсов процессора для объединения таблиц 'users'
, 'user_types'
, чтобы определить, является ли конкретный пользователь супер-администратором. .
Мой вопрос: какой путь лучше? Является ли попадание на сервер SQL настолько великим при объединении двух таблиц, что оправдывает добавление битового поля в таблицу 'users' для пометки супер-администраторов?
Спасибо!