Lo que debe tener en cuenta al diseñar tablas no es necesariamente a qué tendrán acceso y en qué se parece o se diferencia, sino en qué se parecen o se diferencian los niveles de los usuarios.
Por ejemplo, si los tipos de usuario tendrán los mismos atributos (nombre, correo electrónico, fecha de nacimiento, etc.), entonces pertenecen a una tabla junto con una columna que indica su nivel de privilegio.
Esto también facilita el cambio de niveles de privilegios para un usuario, por lo que puede convertir a un empleado común en un administrador, por ejemplo, simplemente actualizando el registro en la tabla de usuarios.
Si los proveedores son un tipo de objeto diferente con atributos diferentes a los otros dos, los proveedores pueden pertenecer a su propia tabla.
O, una cosa más a considerar:puede usar un users
tabla que contiene solo información muy limitada sobre los usuarios de los tres tipos, y si los tipos tienen atributos extendidos que no se relacionan bien entre sí, puede almacenarlos en otras tablas con una clave externa para los users
mesa.