Foros del Web » Programando para Internet » PHP »

Campo en tabla con mas de una alternativa

Estas en el tema de Campo en tabla con mas de una alternativa en el foro de PHP en Foros del Web. Hola No se se si el título es muy claro, el asunto es Tengo en una tabla (fotos) un campo (cliente) que define que cliente ...
  #1 (permalink)  
Antiguo 23/10/2007, 09:01
 
Fecha de Ingreso: diciembre-2005
Mensajes: 35
Antigüedad: 18 años, 4 meses
Puntos: 0
Campo en tabla con mas de una alternativa

Hola
No se se si el título es muy claro, el asunto es
Tengo en una tabla (fotos) un campo (cliente) que define que cliente (C_uno, C_dos, C_tres) puede usar esa foto. Puedo entonces mostrar las fotos que puede usar un determinado cliente.
Mi problema es que algunas fotos las puede usar más de un cliente, y no se me ocurre como podría hacerlo. Bueno, creo que una forma es agregando campos para cada cliente que puede usarla, pero ¿habrá una mejor forma?
Les agradezco cualquier sugerencia
  #2 (permalink)  
Antiguo 23/10/2007, 09:28
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Campo en tabla con mas de una alternativa

Mmm... no entendi muy bien pero si se trata de una opcion como por ejemplo que un cliente podria tener 10 dedos en la mano, 9, 8, 7...0 y para cada uno quieres mostrar una foto lo que puedes hacer es un switch.
Código PHP:
$dedosDeLaMano 5;
switch(
$dedosDeLaMano){
    case 
1:
        
"Le keda un dedo";
        break;
    case 
2:
        
"Todavia es un playboy";
        break;
    case 
3:
        
"La tripleta";
        break;
    case 
4:
        
"Menos mal q hablamos de mano";
        break;
    case 
5:
        
"Con una basta";
        break;
    case 
6:
        
"Vamos por la mano";
        break;
    case 
7:
        
"No uses tijeras";
        break;
    case 
8:
        
"Ojala no sean los dedos gordos";
        break;
    case 
9:
        
"Uno no es nada";
        break;
    case 
10:
        
"Tas completo";
        break;

Y en vez de ser del 1 al 10 pones las cadenas de comparacion entre comillas como "uno", "dos" etc....

No estoy seguro de que estes buscando algo como esto pero si puedes explicate un poco mas con lo que quieres hacer.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 23/10/2007, 09:51
 
Fecha de Ingreso: diciembre-2005
Mensajes: 35
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Campo en tabla con mas de una alternativa

Gracias

A ver si puedo aclararlo

Por ejemplo, tengo 500 fotografías, las ingreso a la bd en una tabla (fotos) con los siguientes campos id_fotos, nombre_foto, cliente (en este campo ingreso el nombre del cliente que puede usar la foto).
Con esto puedo pedir que me muestre las fotos que puede usar un determinado cliente.
Mi problema es que en el campo cliente solo ingreso el nombre de un cliente
(C_uno), pero hay fotografías que las puede usar más de un cliente (C_uno y C_dos por ejemplo).
Pensaba agregar campos en la tabla (cliente2, cliente3, etc) y después en la consulta pedirle que busque en todos los campos cliente si existe el que estoy consultando, supongo que funciona, pero me tinca que debe haber una mejor forma de hacerlo, ¿o no?
  #4 (permalink)  
Antiguo 23/10/2007, 10:05
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Campo en tabla con mas de una alternativa

Yo creo que estas mirandolo desde el punto de vista contrario.

Si tienes las tablas de esta manera:
fotos(id_fotos,nombre_foto,cliente)
cliente(id_cliente,etc...)

Solo podras asignarle la foto a 1 cliente.

En cambio si cambias tu estructura a esto:
fotos(id_fotos,nombre_foto)
cliente(id_cliente,.....,id_foto)

Ya la cosa es mas simple pk estas asociando a que un cliente tiene una foto y no que una foto pertenece a un cliente.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 23/10/2007, 10:23
 
Fecha de Ingreso: diciembre-2005
Mensajes: 35
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Campo en tabla con mas de una alternativa

Voy a intentar lo que me dices, a ver como me resulta
(aún estoy masticándolo)
Gracias
  #6 (permalink)  
Antiguo 23/10/2007, 10:31
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Campo en tabla con mas de una alternativa

;) okales... de todas maneras asi es mas facil porque con toda la info que saques del cliente solo agregas la id de la foto y con eso ya sabes exactamente que foto es la que debes sacar.

Como lo hacias desde la foto tenias que buscar el cliente pero no podrias asociarlo a mas clientes (igual siempre se puede pero en base de datos eso estaria desnormalizado y es mas compleja la solucion)

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 23/10/2007, 11:22
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Campo en tabla con mas de una alternativa

Código PHP:
Yo creo que estas mirandolo desde el punto de vista contrario.

Si tienes las tablas de esta manera:
fotos(id_fotos,nombre_foto,cliente)
cliente(id_cliente,etc...)

Solo podras asignarle la foto a 1 cliente.

En cambio si cambias tu estructura a esto:
fotos(id_fotos,nombre_foto)
cliente(id_cliente,.....,id_foto)

Ya la cosa es mas simple pk estas asociando a que un cliente tiene una foto y no que una foto pertenece a un cliente.

Suerte
Hola si haces de esa manera lo unico que lograras es que un cliente solo tenga acceso a una sola foto veamos por que:

idcliente(clave unica) Nombre Cliente idfoto------------------------------------------------------------------
C001 JUAN PEREZ F001
C002 MARIA F001
C003 MARCO LOPEZ F002


como puedes ver a cada cliente solo puedes ponerle una sola foto por que simplemente en la tabla clientes no puedes repetir a un cliente por ser unico en todo caso tendriamos que repetir el cliente tantas veces para asignarle n fotos no es asi?


La solucion mas efectiva que se me puede ocurrir es esta:

TABLA CLIENTES:
idcliente------- Clave Primaria
nombres
apellidos
.....


TABLA CLIENTEFOTOS:
idclientefotos-------Clave Primaria
idcliente------------- Esta clave se puede repetir
idfotos--------------- Esta clave se puede repetir


TABLA FOTOS:
idfotos-------------- Clave primaria
nombrefoto
foto
......

un ejemplo con los datos de los clientes de arriba:

TABLA: CLIENTEFOTOS

idclientefotos(clave primaria) -- idcliente ----- idfotos-------------------------------------------------------------------------
1 C001 F001
2 C002 F001
3 C001 F002
4 C003 F003
5 C001 F003
6 C002 F003

Como puedes ver el cliente C001 tiene acceso a las fotos F001,F002,F003

y el cliente C002 tambien tiene acceso a la foto F001 y a demas a la foto F003

de esta manera si se cumple.

bueso espero haber aclarado sus dudas.
  #8 (permalink)  
Antiguo 23/10/2007, 11:29
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 3 meses
Puntos: 81
Re: Campo en tabla con mas de una alternativa

Lo que dice ginitofl es correcto... siempre asumi que un cliente tenia acceso a una foto... si no es asi la solucion que te da ginitofl es la correcta.

Eso se hace al momento de tener relaciones de muchos a muchos y esto justamente es la denominada normalizacion de las tablas.

Aunque debo agregar que si no puedes editar las tablas tambien hay opciones para esto.

Cuentanos como lo haces finalmente!.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 23/10/2007, 11:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 35
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Campo en tabla con mas de una alternativa

Gracias una vez más

A ver si voy entendiendo (no me manejo mucho en el tema)

Si ya tengo las tablas
TABLA CLIENTES
TABLA FOTOS

Para asociar las fotos a los clientes debo generar una nueva tabla
TABLA CLIENTEFOTOS

y volver a ingresar información

idcliente y los idfotos de cada una de las fotos que este cliente puede usar,
y para esto debiera saber que id tiene cada cliente en la TABLA CLIENTES y cada foto en la TABLA FOTOS.

Y para hacer la consulta,(que foto están asociadas a un cliente) debo hacerla por el id del cliente?
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 10:01.