La mejor forma de hacerlo? (no se que titulo ponerle)

Iniciado por Karman, 21 Agosto 2009, 23:50 PM

0 Miembros y 1 Visitante están viendo este tema.

Karman

buenas, estoy desarrollando un proyecto bajo PHP (antiormente hable de el) y el tema es que me topé con una duda de como hacer lo siguiente:

Tengo un conjunto de módulos los cuales pueden necesitar sus propias tablas en la base de datos, el tema es que cada uno de estos módulos puede tener múltiples instancias (algo así como: blog de pepito, blog de josesito), pero en si, el código que maneja el módulo "blog" es uno solo, entonces mi duda es como crear esas tablas en la base de datos:

1º Una única tabla con un identificador de instancia (1 petito, 2 josesito), el tema de esta opción es que siquiero borrar un determinado blog, tendría que hacer todo un laburo extra para eliminar unicamente las entras del X blog, y si ya no hay instancias, borrar toda la tabla...

2º Una tabla por instancia cuyo nombre esté relacionada con el nombre de esta (blog_pepito,blog_josesito), con esta opcion desaparecen las complicaciones anteriores pero aparece la complicación de mantener ese nombre de tabla en algún lado (en mi caso tengo a dispoción "variables del módulo"), pero si dicha "variable" por alguna razón desaparece (o se borra) perdería la relación con la base de datos...

3º Una tabla por instancia cuyo nombre esté relacionado con el módulo/instancia (blog_1,blog_2), con esta otra opción desaparecen las complicaciones de las anteriores pero se dificulta la lectura de la base de datos... (en realidad me parece un poco complicada...)

bueno... espero se entienda la idea y me dén alguna opinión...

S2

Spider-Net

Yo personalmente haría una tabla blog y ahí insertaría un campo idusuario por ejemplo. No es tan complicado borrar los datos, solo tendrías que hacer.

DELETE FROM blog WHERE idusuario=$idusuario;

Con eso ya borrarías todas las entradas de ese usuario. Si esa tabla la tienes relacionada con otras tablas más y ese es tu problema lo que deberías hacer es utilizar el motor INNODB para las tablas y usar los eventos. ON_DELETE_CASCADE y ON_UPDATE_CASCADE

Así se actualizarán y borrarán todas las entradas que estén relacionadas con la tabla blog con sólo dar la orden de borrado o actualización a la tabla blog.

Un saludo!

NXS

#2
Me equivoque de sitio posteando xD

Karman

si, creo que al final lo voy ha hacer así nomás... en realidad así lo tenía hecho, pero me quedó la duda de si no había una "mejor" forma de hacerlo...

S2