Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/08/2012, 06:50
Pipeline
 
Fecha de Ingreso: febrero-2005
Mensajes: 129
Antigüedad: 19 años, 2 meses
Puntos: 2
Administradores y Clientes en cascada

Hola.
Estoy diseñando una base de datos donde habrá Administradores y Clientes. Nada fuera de lo normal.

El caso es que habrá un Admin general para todos, y de él podrán colgar tanto Administradores como Clientes.

Es decir, habrá algo como:

ROOT
-- adm1
---- cli1.1
------ Noticia1
------ Noticia2
---- cli1.2
------ Noticia1
---- adm1.1
----- cli1.1.1
------ Noticia1
------ Noticia2
----- cli1.1.2
------ Noticia1
-- adm2
---etc...

la tabla Admin será:
id | nombre | idPadre | etc |

La tabla Cliente será
id | nombre | idAdmin | etc |

La tabla Noticias será
id | titulo | idCliente | etc |

Eso sería más o menos como quedaría la base de datos y la jerarquía de administradores y clientes.

Cada cliente tendrá noticias, y solo los clientes podrán crear estas noticias.

Actualmente he pensado que puedo agregar un campo idPadre a cada administrador para saber quien es el administrador Padre, de esta forma recursivamente, podré saber quien es el padre de un determinado administrador.

A su vez, cada cliente llevará también un idAdmin, que tendrá el id de su administrador.

De esta forma, si quisiese sacar un listado de todas las noticias de ROOT (admin general) tendría que ir recursivamente por cada administrador bajando hasta sus clientes y ahí obtener las noticias.

Mi duda es: ¿Es esta la forma correcta de plantear el problema? O tal vez debido a la estructura de la base de datos tendré problemas al intentar sacar los listados (por tema de recursividad y que tarde demasiado).
Creo que uno de los problemas es que un administrador puede crear tantos administradores como quiera, pudiendose dar una cascada de administradores.


Alguna sugerencia para afrontar este problema?

Muchas gracias.