Buenos días, tengo una base de datos con clientes y vendedores La idea es la siguiente: tengo una pagina web donde va ver 3 tipos de usuarios: Gerente(tienes acceso total de la pagina), Vendedor(tiene acceso a ciertos requisitos), Cliente(tiene acceso a ciertos requisitos). Bueno el negocio funciona de la siguiente manera, el cliente tiene 2 formas de hacer la compra, lo hace directamente acercándose a la tienda y pidiendo lo que necesita y todo la compra y registro del cliente queda registrado en la paginas web mediante el vendedor, la otra manera es que desde la comodidad de su casa el cliente se loguee, antes debe haberse registrado y cuando accede a la web como usuario entonces podrá realizar las compras que desee. Ahora no se como realizar lo siguiente: Va ver una tabla usuarios con 3 tipos de usuarios, cuando el cliente se registre mediante la web, sera un usuario y cliente a la vez, ademas el vendedor tiene la posibilidad de realizar el registro del cliente cuando este venga a la tienda, pensaba realizar un procedimiento que lo guarde en la tabla usuarios y cliente a la vez, sin embargo como harria con los vendedores, ya los registro en la tabla de usuarios por defecto?? osea previamente ya tienen que estar registrados? o al momento de hacer un registro de la tabla vendedores hago un procedimiento que registre en vendedores y usaurios?? Y como harria con el gerente se supone que solo sera un persona con el acceso total, creo una tabla mas de gerente o solamente la ingreso por interno a la tabla de usuario. Espero se haya entendido, salu3!
Todo aquel que tenga que ser registrado como usuario, lo tiene que estar. Las categorías que has mencionado se llaman roles y es necesaria 4 tablas más : Roles, permisos, roles_permisos, roles_usuarios. Así un usuario puede ser a la vez usuario web y usuario "físico". Luego en cada página o pantalla validas si un usuario tiene permiso o no de acceder a dicho recurso. Lo importante y que más trabajo necesita es la asignación de roles,permisos a las respectivas tablas intermedias.
Es cierto lo de roles, @San Diablo en Internet hay ejemplo de usuarios y roles, en inclusive el diagrama de tablas de usuarios y roles.
Tu duda es con pre-poblar la tabla con data, si no hay pantalla donde se de mantenimiento (Altas/Bajas/Cambios) de esos tipos de usuarios (Gerente/Vendedor) tienes que hacerlo via script. Normalmente para algo pequeño que empieza de 0, se crea un usuario admin via script que permite crear a otros usuarios y asignar sus roles y permisos en su correspondiente pantalla (ABC Usuarios) el campo/rol/permiso tipo de usuario es donde aplicas tus condiciones de quien puede crear a quien (admin->gerente/vendedor, gerente->vendedor, vendedor->cliente).
Yo no lo recomendaria, puedes poder un codigo numerico pero los roles deben ser descriptivos, todo en los programas actuales deben ser descriptivos, los nombres de las variables, las clases, los objetos, metodos, tablas, store, columnas, etc. etc. Por otro lado, la primera carga siempre es por script, o en ultimo caso crea la tabla o tablas de tu modelo y crea via INSERTs al gerente, el se encargará de crear al resto de la jerarquia.
no es seguro tener roles descriptivos en una tabla, cada variable puede ser definida en la documentacion del proyecto.
Si, pero como dije "hoy se acostumbra" minimizar la documentación externa al programa, tampoco vamos a poder un rol como GerenteGeneraldeAsuntosSinImportancia, pondriamos un rol al puesto mas o menos descriptivo y un maestro de roles en otra tabla.
Hablo de buenas practicas no de malas costumbres por si acaso, las lladamas "metodologias agiles" buscan que el programa se "autodocumente"