Estoy desarrollando una aplicación para nuestra empresa que finalmente tendrá muchas formas de restringir a los usuarios a secciones/módulos particulares. Si bien la aplicación aún es pequeña, me gustaría pasar a un nuevo método de almacenamiento de permisos que, a medida que la aplicación crece, seguirá siendo fácil de mantener y consultar.Almacenamiento de permisos de aplicaciones en una base de datos
Actualmente en nuestra base de datos MySQL tenemos una tabla llamada "usuario" que almacena la identificación del usuario, nombre de usuario y contraseña. En una tabla separada llamada "user_acl" es el siguiente:
user_acl_id
acl_root
acl_news_read
acl_news_write
acl_news_modify
acl_reports_read
acl_reports_write
acl_reports_modify
acl_users_read
acl_users_write
acl_users_modify
solamente tenemos 3 módulos en el minuto, pero con el tiempo más se creará y tendrá que ser añadido permisos para cada uno.
En lugar de crear una columna para cada permiso, ¿hay alguna otra forma o el almacenamiento de esta información?
¿Cómo agregar información adicional acerca del rol como administrador público, etc.? por ejemplo, el administrador tiene algo extra que agregar como nombre de compañía ... ¿y el usuario no tiene este campo? – james
Guardaría información en la entidad relacionada, puede agregar columnas adicionales a la tabla, si desea agregar más información para una función, puede agregar una columna adicional en la tabla de roles, lo mismo vale para la tabla de usuario –
si tengo una tabla de usuarios con los campos username y password.which es genérico para todos los usuarios. y tengo una tabla de miembros con algún campo adicional, como el nombre de la empresa, la dirección, etc. También tengo administrador con más información. ¿Debo utilizar la relación de supertipo/subtipo para el usuario con memebers admin? – james