Nous faisons une petite refonte et la consolidation de certaines tables dans une base de données. Là où nous avions autrefois 2 tables, 'administrators'
et 'users
'nous combinons maintenant en une seule table appelée 'users'
. Pour faciliter cette modification, nous avons créé une table 'user_types' et une table 'user_user_types'
qui est la table de liaison un-à-plusieurs entre 'users' et 'user_types'
. La raison pour laquelle nous devons utiliser la table 'user_types'
, c'est parce qu'il y a différents types d'administrateurs, l'un étant un super administrateur qui a accès à tout ce qui se trouve dans notre système. Dans la vieille configuration il y avait un champ peu dans la table 'administrators'
appelée 'SiteAdmin'
qui a indiqué que cet admin particulier était un super administrateur ou pas. Depuis le passage à ce nouveau système, je pensais qu'il y aurait un type d'utilisateur dans la table 'user_types'
qui serait un super administrateur et que nous lierions juste l'utilisateur correct à ce type d'utilisateur dans ces cas-là, mon collègue programmeur dit ici qu'il veut utiliser un champ de bit 'SiteAdmin'
dans la nouvelle table 'users'. Je pense que c'est un peu redondant, mais il prétend qu'il y aurait une charge excessive et que le processeur SQL aurait plus besoin de joindre les tables 'users'
, 'user_types'
pour déterminer si un utilisateur particulier était un super administrateur.Quelle est la meilleure façon de structurer ces données dans une base de données?
Ma question est de savoir quel est le meilleur moyen? Est-ce que le coup sur le serveur SQL est si bon en joignant les deux tables qu'il justifie d'ajouter le champ de bit à la table 'users' pour signaler les super-admins?
Merci!