Tengo un problema de concepto al montar unas tablas que no sé cómo resolver, y necesitaría de vuestra sabiduría para poder resolver este tema, a continuación, me intento explicar:
Tengo una tabla con el nombre ACTUACIONES que contiene unos 750 registro por defecto, ya con unos conceptos de determinados por la Clínica Principal, estos registros son de solo lectura para todas las Clínicas no Principales, excepto para la Clínica Principal que las puede modificar, eliminar y crear de nuevas.
El resto de Clínicas no Principales, pueden ver esas ACTUACIONES, pero no las pueden ni modificar ni eliminar, pero sí que pueden crear de nuevas Actuaciones que solo ellas mismas las podrán modificar y eliminar, pero el resto de Clínicas no las pueden manipular ni ver.
Dicho de otra forma, cada Clínica no Principal puede manipular las Actuaciones de la Clínica Principal (sin poder eliminar y modificar), Pero por ejemplo una Clínica no Principal en una rejilla tendrá sus Actuaciones y las 750 Actuaciones de la Clínica Principal.
Es aquí donde no se como debo de actuar, para que todas las Clínicas no Principales puedan ver y utilizar (sin poder eliminar y modificar) las Actuaciones de la Clínica Principal, y sus propias Actuaciones, que, si pueden crear, modificar y eliminar.
Lo dejo aquí para no enturbiar la cabeza, si necesitáis más información, no dudéis en avisarme.
Buenos días:
A vuela pluma y sin entrar mucho en el esquema de las tablas, lo más practico seria aplicar roles jerarquizados o privilegios a los usuarios, creando grupos por clinica.
El grupo creador verá sus fichas y las principales teniendo la capacidad de modificar y eliminar sus fichas
Primero, gracias por hacer una exposición tan clara del problema, se agradece (el uso de comas, puntos y aparte …).
Prácticamente estás tú mismo dando la solución y como dice Ceferino el usuario pertenece en un momento dado a una Clínica y solo verá las ACTUACIONES de esa clínica y además las de la clínica principal.
Creo que hasta aquí no tienes problema, cada registro de ACTUACION tiene un campo puntero que apunta a la Tabla de CLINICAS que llamaremos ID_CLINICA.
El problema que creo que planteas, es cómo obtener las ACTUACIONES para una Clínica determinada.
Yo montaría 2 Búsquedas:
Búsqueda fija BUS_CLI_PRIN que obtiene siempre las ACTUACIONES de la clínica principal ID_CLI_PRIN
Búsqueda parametrizada BUS_CLI_USU que obtiene las ACTUACIONES de la clínica a la que pertenece el Usuario actual ID_CLI_USU
Ejecutas las dos Búsquedas una detrás de otra añadiendo el resultado de ambas a una Cesta de ACTUACIONES. El Usuario solo puede Editar los registros cuyo ID_CLINICA = ID_CLI_USU que será la condición que pones en el formulario correspondiente.
Ampliando un poco el tema, si tienes una tabla de USUARIOS pertenecerán a una CLINICA.
Si en la tabla de ACTUACIONES le añades el USUARIO que la ha creado, tendrás resuelto el segundo punto… que los USUARIOS de una CLÍNICA sólo puedan modificar y eliminar ACTUACIONES de su CLINICA