Solución de gestión de derechos de usuario de operación backend de diseño de software

Los permisos en el sistema B/S son más importantes que los del sistema C/S. Debido a que el sistema C/S tiene un cliente especial, la detección de permisos de acceso del usuario se puede implementar a través del cliente o mediante. Se implementa la detección del servidor final y, en B/S, cada computadora tiene un navegador. Si no se establece una detección de permisos completa, es probable que un "usuario ilegal" pueda acceder fácilmente a B/S a través del navegador. Todas las funciones en el sistema S. Por lo tanto, los sistemas comerciales B/S necesitan tener uno o más sistemas de permisos para implementar la detección de permisos de acceso, de modo que los usuarios autorizados puedan utilizar las funciones autorizadas de forma normal y legal, mientras que los "usuarios ilegales" no autorizados quedarán completamente "excluidos". Veamos cómo diseñar un sistema de permisos que pueda satisfacer el control de permisos de la función del usuario en la mayoría de los sistemas B/S.

Declaración de requisitos

El personal con diferentes responsabilidades debe tener diferentes permisos para las operaciones del sistema. Excelente sistema de negocios, esta es la función más básica.

Se pueden asignar permisos a "grupos". Para el sistema empresarial de una gran empresa, exigir a los administradores que asigne permisos de operación del sistema a sus empleados uno por uno requiere mucho tiempo y es inconveniente. Por lo tanto, el sistema propone el concepto de operar en "grupos", reunir a personas con los mismos permisos en el mismo grupo y luego asignar permisos al grupo.

Un sistema de gestión de derechos debe ser extensible. Debería poder agregarse a cualquier sistema con capacidades de gestión de permisos. Al igual que los componentes, se pueden reutilizar continuamente, en lugar de volver a desarrollar la parte de gestión de permisos cada vez que se desarrolla un sistema de gestión.

Cumplir con los permisos funcionales en el sistema empresarial. En los sistemas empresariales tradicionales, existen dos tipos de gestión de permisos: uno es la gestión de permisos funcionales y el otro es la gestión de permisos de recursos. Los permisos funcionales se pueden reutilizar entre diferentes sistemas, pero los permisos de recursos no.

Acerca del diseño

Con la ayuda del concepto de programación de acciones de NoahWeb, durante la fase de diseño, los diseñadores de sistemas no necesitan considerar el diseño de la estructura del programa, sino comenzar con el flujo del programa. y estructura de la base de datos. Para cumplir con los requisitos, el diseño de la base de datos es extremadamente importante, ya sea el concepto de operación "grupal" o la reutilización de todo el sistema de gestión de permisos, todo depende del diseño de la base de datos.

Analicemos primero la estructura de la base de datos:

Primero, la tabla de acciones (en lo sucesivo, "tabla de autoridad"), la tabla gorupmanager (en lo sucesivo, "grupo de gestión") "tabla"), y la tabla maestra (en lo sucesivo denominada "tabla de personal") son tres tablas de entidades, que registran información de "autoridad", información de "grupo de gestión" e información de "personal" a su vez. Como se muestra a continuación:

La relación entre estas tres tablas es de muchos a muchos. Un permiso puede pertenecer a varios grupos de administración al mismo tiempo y un grupo de administración también puede contener varios permisos al mismo tiempo. . Del mismo modo, una persona puede pertenecer a varios grupos de gestión al mismo tiempo y un grupo de gestión también puede contener varias personas al mismo tiempo. Como se muestra a continuación:

Dado que existe una relación de muchos a muchos entre estas tres tablas, es mejor utilizar las otras dos tablas para completar la interacción entre ellas. Estas dos tablas desempeñan una función de mapeo, a saber, la tabla de "grupo de acciones" (en lo sucesivo, "tabla de mapeo de permisos") y la tabla de "grupo maestro" (en lo sucesivo, "tabla de mapeo de personal"). mesa de grupo de gestión de interacción entre. Este último mapea la interacción entre la tabla de personal y la tabla del grupo de gestión. Como se muestra a continuación:

Además, se necesita una tabla para controlar las columnas de permisos en el menú de la izquierda cuando el sistema se está ejecutando, es decir, la "Tabla de columnas de permisos", como se muestra a continuación:

Con base en el análisis anterior, diseñamos la estructura de la base de datos, como se muestra a continuación:

Haga clic aquí para ver el diseño de campo de la tabla de datos del sistema de gestión de autoridades.

Para realizar un buen análisis, utilizamos el diagrama de estructura de la base de datos. Las funciones de las tres tablas de entidades ya son muy claras. Ahora echemos un vistazo a las funciones de las dos tablas de mapeo.

A continuación se muestra una tabla de asignación de permisos:

Primero, comprendamos la asociación de campos entre la tabla de asignación de permisos, la tabla del grupo de administración y la tabla de permisos.

Mire el círculo rojo en la imagen, primero observe la correlación del campo gorupid. El rendimiento de este método de correlación en la base de datos real es el siguiente:

Como se muestra en la figura. , la tabla del grupo de administración El ID de grupo del "superadministrador" es 1, luego los permisos con ID de grupo 1 en la tabla de asignación de permisos son los permisos que posee el "superadministrador".

Usar la asociación de campos groupid es para descubrir qué permisos puede ejecutar un grupo de administración. Sin embargo, la información detallada de estos permisos es consultada por la asociación del campo de acción.

El rendimiento de la correlación del campo de acción en la base de datos es el siguiente:

A través de esta correlación, se puede consultar la información detallada de los permisos en la tabla de mapeo de permisos. En conjunto, sabemos qué permisos puede realizar un grupo administrativo y cuáles son los detalles de estos permisos.

Tal vez te preguntes, ¿por qué no utilizar el campo actionid para asociar? Porque:

El campo de identificación en la tabla de permisos puede cambiar después de múltiples operaciones en la base de datos.

La tabla de asignación de permisos solo registra los permisos que un grupo de administración puede ejecutar.

Una vez que cambia la identificación en la tabla de permisos, el registro en la tabla de asignación de permisos también cambia.

Los permisos que un grupo administrativo puede ejecutar seguramente fallarán, lo cual es altamente indeseable.

Teniendo en cuenta la situación anterior, se debe utilizar el campo de acción para asociarlo, porque:

En la tabla de permisos, la identificación puede cambiar, pero el campo de acción está en cualquier caso. No puede haber ningún cambio.

El campo de acción registrado en la tabla de asignación de permisos no cambiará.

Si un grupo administrativo puede ejecutar permisos, no habrá errores.

Las dos tablas de asignación de personal se muestran a continuación:

Echemos un vistazo a las relaciones de campo entre la tabla de asignación de personal, la tabla de grupo de gestión y la tabla de personal, como se muestra a continuación. :

Mire el círculo rojo en la imagen, primero observe la asociación del campo groupid. El rendimiento de esta asociación en la base de datos es el siguiente:

Como se muestra en la figura. el ID de grupo del grupo "Superadministrador" es 1, veremos la tabla de asignación de personal, el administrador pertenece al grupo de superadministrador y el administrador pertenece al grupo de superadministrador y también al grupo de administrador.

Utilizar este método de correlación sirve para saber quién está en un grupo de gestión. Como se indicó anteriormente, la información detallada del personal se consulta asociándola con el campo de identificación (el campo masterid en la tabla de mapeo de personal).

El campo id (campo masterid en la tabla de mapeo de personal) se muestra en la base de datos de la siguiente forma:

Una persona puede pertenecer a múltiples "grupos de gestión" al mismo tiempo Como se muestra en la figura, el administrador pertenece a dos "grupos de administración" al mismo tiempo. Por lo tanto, habrá dos registros sobre administrador en la tabla de mapeo de personal.

Este método de asociación permite consultar la información detallada de las personas del grupo de gestión. En conjunto, podemos saber quién está en un grupo de gestión y la información detallada de esta persona.

Combinado con la tabla de permisos y la tabla de asignación de permisos mencionadas anteriormente, se realiza la operación de "grupo" en el requisito, como se muestra a continuación:

De hecho, la tabla del grupo de administración solo registra Información básica del grupo, como nombre, identificación del grupo, etc. La información detallada sobre las personas de un grupo, así como los detalles sobre los permisos que el grupo puede realizar, se registran en la tabla de personal y en la tabla de permisos. Las dos tablas de mapeo realmente registran quién está en un grupo y qué permisos pueden realizar. A través de la conexión de las dos tablas de mapeo, se puede realizar la interacción entre las tres tablas de entidades, completando así la operación de "grupo" mencionada en los requisitos.

Echemos un vistazo a la interacción entre la tabla de columnas de permisos y la tabla de permisos.

La asociación de campos entre estas dos tablas se muestra a continuación:

Las dos tablas se relacionan mediante el campo actioncolumnid. El rendimiento de este método de asociación en la base de datos es el siguiente:

Como. como se muestra en la figura Como se muestra en la figura, a través de este método de asociación, podemos ver muy claramente a qué columna pertenecen los permisos en la tabla de permisos.

Ahora, la estructura de la base de datos es muy clara y se ha implementado la función de asignación de permisos y operaciones "grupales". A continuación, analicemos los problemas de reutilización mencionados en los requisitos sobre el sistema de gestión de permisos.

¿Por qué se puede reutilizar un sistema creado con este método de diseño de bases de datos?

Las tres tablas de entidades registran los tres elementos decisivos en el sistema. "Permisos", "Grupos" y "Personas". Estos tres elementos se pueden añadir a voluntad sin que se afecten entre sí. No importa qué tipo de sistema empresarial sea, estos tres elementos decisivos no cambiarán, lo que significa que la estructura no cambiará, solo cambiarán los datos.

Las dos tablas de mapeo registran la relación entre los tres elementos. Pero estas relaciones se crean de forma completamente artificial. Cuando es necesario realizar cambios, solo se operan los registros de la base de datos sin cambiar la estructura.

La tabla de columnas de permisos registra las columnas que se muestran cuando se utiliza el sistema. Ya sea que desee agregar columnas, modificar columnas o reducir columnas, es solo un registro de operación.

En resumen, al diseñar la base de datos de esta manera, el sistema es completamente reutilizable y puede resistir la prueba del "cambio".

Resumen:

El punto clave de este sistema es que las tres tablas de entidades capturan firmemente los componentes centrales del sistema, y ​​las dos tablas de mapeo mapean perfectamente las tres interacciones entre las tres entidades. mesas. La dificultad radica en comprender el funcionamiento de la tabla de mapeo, que registra las relaciones e implementa el concepto de operaciones "grupales". El diseño general del sistema se basa en la idea de que se puede "reutilizar" en diferentes sistemas MIS para cumplir con la configuración de permisos funcionales de diferentes sistemas.

Apéndice:

Diseño de campo de la tabla de datos del sistema de gestión de permisos

Echemos un vistazo al diseño de la tabla de base de datos del sistema de gestión de permisos, que está dividida en seis Una tabla, como se muestra a continuación:

Tabla de acciones:

La tabla de acciones registra todas las acciones en el sistema, así como las descripciones relacionadas con las acciones.

Tabla de columnas de acciones:

La tabla de columnas de acciones registra las columnas de acciones cuando el sistema se está ejecutando, la barra de menú izquierda proporciona varias funciones diferentes, cada una de las cuales es una columna. Se agrega una columna, se agregará un registro en la tabla. En consecuencia, se agregará una nueva columna en la barra de menú de la izquierda.

Tabla de grupos de acciones:

La tabla de grupos de acciones registra el grupo en el que se encuentra la acción.

Tabla Groupmanager:

La tabla groupmanager registra información relevante del grupo de administración. Cada vez que se agrega un grupo de administración, se agregará un registro aquí.

Tabla Mastergroup:

La tabla Mastergroup registra el grupo de administración al que pertenece el administrador. Dado que un administrador puede pertenecer a varios grupos al mismo tiempo, la tabla contiene información sobre un determinado administrador. Puede haber varios registros de empleados.

Tabla maestra:

La tabla maestra registra la información de todos los administradores. Cada vez que se agrega un administrador, se agregará un registro a la tabla.