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

usuarios empleados y clientes modelo E-R que hago?

Estas en el tema de usuarios empleados y clientes modelo E-R que hago? en el foro de Mysql en Foros del Web. Hola chicos. Tengo una duda respecto a cual seria la forma mas optima de hacer unas tablas en un software que haremos en PHP mysql ...
  #1 (permalink)  
Antiguo 24/06/2013, 20:01
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
usuarios empleados y clientes modelo E-R que hago?

Hola chicos. Tengo una duda respecto a cual seria la forma mas optima de hacer unas tablas en un software que haremos en PHP mysql ( innodb)

Verán la aplicación tiene dos tipo de usuarios:
Empleados: estos siempre deben acceder a la base de datos meter registros y consultar algunas tablas

Clientes: generalmente harán consultas a algunas tablas y también insertaran algunas cosas a otras. Es i portante que sepan que no todos los clientes tienen acceso al sistema solo algunos

Ambos usuarios necesitan acceder al sistema entonces mi duda es cuantas tablas debo hacer y porque. Estas son las posibilidades que he analizado pero no se cual es la mejor o si hay otra que no haya considerado:

A) crear solo 2 tablas, empleados y trabajadores y que cada una tenga el usuario y la clave para cada usuario. No creo que esta opción sea correcta porque cuando usuario hace algo siempre guardamos el Id de quien lo hizo entonces tendría que crear otro campo para ademas de guardar el Id también guardar el tipo de usuario.

B) Crear 3 tablas, usuarios, empleados, clientes. En la tabla clientes y empleados poner el id del usuario y en la tabla usuarios poner el tipo de usuario es decir si es empleado o cliente.

Esta opción me parece viable pero me deja con un problema, y es que no todos los clientes tienen acceso al sistema entonces en la tabla de clientes donde relaciono el id_usuario tendría campos null

C) creo 3 tablas usuarios, empleados y clientes. En la tabla usuarios dejo un campo para el id del detalle y ademas pongo un campo para el tipo de usuario es decir para saber si empleado o cliente

Creo que esta es la mejor opción. Pero no se como haría una consulta optima para por ejemplo sacar los datos del usuario con un inner sacar el detalle de ese usuario según la tabla que le corresponda por su campo tipo de usuario.

Para mi creo que esta claro que no debo usar solo una tabla por que hay muchos datos que el cliente tiene pero que el empleado no, y visiversa.

M3 pueden ayudar por favor
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 24/06/2013, 20:29
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 2 meses
Puntos: 11
Una sola tabla

Crea una sola tabla que sea usuarios y en esta un campo que identifique si es empleado o usuario no es necesario el crear 3 tablas y ahí guardas los datos de acceso, recuerda siempre encriptar las contraseñas
  #3 (permalink)  
Antiguo 24/06/2013, 20:33
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 2 meses
Puntos: 11
Otra opcion

Crea las tres tablas como tu tercer opción y en empleado y cliente pones el idUsuario al que hace referencia para que puedas separar los datos de cada quien aún así pon un identificador en usuarios para saber si es trabajador o cliente y no tengas que cruzar tablas para saberlo
  #4 (permalink)  
Antiguo 24/06/2013, 21:27
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
Respuesta: usuarios empleados y clientes modelo E-R que hago?

Muchas gracias por tu respuesta. Me dices q haga la 3 opcion pero luego haces referencia a la segunda opcion, no me queda muy claro me podrias explicar mejor.

Si pongo en empleados y clientes el id usuario es posible que algunos clientes no tengan ningun id por que simplemente no deben ingresar al sistema.

En el caso 3 como seria la consulta para saber el detalle de un usuario. Es decir como le digo a sql que si el usuario es tipo 1 consulte la tabla empleados pero si es tipo 2 consulte la tabla clientes ?
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 24/06/2013, 23:04
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 2 meses
Puntos: 11
Respuesta: usuarios empleados y clientes modelo E-R que hago?

lo que pasa es que si lo haces con una sola tabla, puedes dejar los campos vacios que no necesitas para empleado, viceversa para cliente y todos los que no apliquen para el que es solo usuario, no es lo mejor pero tampoco te ocupa espacio aunque los dejes vacios.

de la otra manera la consulta para identificar los empleados y los clientes es la siguiente:

Para trabajadores:
Código:
select * from usuarios, empleados where empleados.idUsuario = usuarios.idUsuario and usuarios.identificador = 1;
Para clientes
Código:
select * from usuarios, clientes where clientes.idUsuario = usuarios.idUsuario and usuarios.identificador = 2;
para todos los demas:
Código:
select * from usuarios where identificador = 0;
Donde 1 = Empleado, 2 = Cliente y 0 = Solo Usuario.

En cuanto al id del usuario, asi esta bien, ya que si no es ni cliente ni usuario simplemente no va a estar relacionado en ninguna otra tabla.

La relación entre la tabla usuarios - empleados/clientes seria de 1 a 1 con una participación parcial por parte de usuarios que quiere decir que cuando al menos una entidad en usuarios NO participa en alguna relación de empleados o clientes.
__________________
Hasta que el hombre no es nada, Dios no puede hacer nada con el.

Última edición por alvidales; 24/06/2013 a las 23:13

Etiquetas: entidad, modelos, relacion, usuarios
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 18:53.