Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Relacionar Tablas

Estas en el tema de Relacionar Tablas en el foro de Mysql en Foros del Web. Hola, necesito de su ayuda otra vez :P Tengo 3 tablas que son: usuarios, urls, permisos. usuarios ->id, nombre, email, pass urls->id, url permisos->id, action ...
  #1 (permalink)  
Antiguo 26/05/2011, 10:28
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 14 años, 9 meses
Puntos: 1
Pregunta Relacionar Tablas

Hola, necesito de su ayuda otra vez :P

Tengo 3 tablas que son: usuarios, urls, permisos.

usuarios ->id, nombre, email, pass
urls->id, url
permisos->id, action

En permisos las acciones son CREAR, ELIMINAR, EDITAR, VER

Lo que quiero hacer es poder asignarle permisos a los usuarios segun la pagina del sistema y mi pregunta concreta seria como relacionar estas tablas de la forma mas eficiente.

Tenia pensado hacerlo de estas dos formas pero no se si sean correctas.

Forma 1
Crear una tabla mas y relacionar el id de usuario, el id de la url y el id del permiso en cuestion. La tabla quedaria de la siguiente manera:

permisos_asignados->usuarios_id, urls_id, permisos_id

El problema que le veo es que si a un usuario le asigno los 4 permisos, tendria que crear 4 entradas en esa tablas....1 por permiso.... y no creo que eso sea lo mas optimo.

Forma 2
Crear una tabla mas y relacionar el id de usuario, el id de la url y crear 4 campos mas de tipo BOOL uno para cada permiso. La tabla quedaria asi:

permisos_asignados->usuarios_id, urls_id, crear, eliminar, ver, editar

El problema es que si agrego otro permiso mas tendria que modificar esta tabla otra ves .....

En lo personal creo que las dos maneras que se me ocurren estan incorrectas, asi que les pido su ayuda xDDD :P
  #2 (permalink)  
Antiguo 27/05/2011, 00:38
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Relacionar Tablas

Forma uno, sin dudas, tu mismo te contestas, si optas por la dos y cambian los permisos tendrás que cambiar la tabla.

Una opcion tres es crear la tabla que contenga id_usuario, id_url y un entero que te indique que permisos tiene (lo suyo es crear otra tabla para explicar esta columna), así, si modificas los permisos bastaría con recalcular el entero y no tendrías que tocar la tabla

En cualquier caso yo me sigo quedando con la número uno.

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:13.