2009/4/15 Alvaro Herrera <[email protected]>: > Linos escribió: > >> Cuando quiero hacer una consultar a los albaranes de salida donde muestre el >> nombre del cliente tengo que hacer o: >> >> SELECT cab.numero_albaran, >> CASE >> WHEN tipo_cliente = 'CLIENTE' THEN cli.nombre >> WHEN tipo_cliente = 'CLIENTE EMPRESA' THEN cli_emp.nombre >> WHEN tipo_cliente = 'CLIENTE GRUPO' THEN cli_grp.nombre >> ELSE NULL >> FROM albaran_salida_cabecera AS cab >> LEFT JOIN cliente AS cli ON cli.id_cliente = cab.id_cliente >> LEFT JOIN cliente_empresa AS cli_emp ON cli_emp.id_cliente = >> cab.id_cliente >> LEFT JOIN empresa_grupo AS cli_grp ON cli_grp.id_cliente = >> cab.id_cliente; > > Efectivamente parece que necesitara un poco más de normalización. > Creo que deberías tener una única tabla de "clientes", que llevara el > nombre y otros datos comunes; y el resto de los datos podrían ir en una > tabla diferente con columnas para los datos que son únicos a cada tipo. >
Yo tengo una duda similar y quiero ver si entendí: sugieres que haya una tabla clientes. y que haya 3 tablas llamadas por ejemplo: cliente_otros_datos , empresa_otros_datos, empresa_grupo_otros_datos ó una tabla clientes. y una tabla clientes_otros_datos que tenga los campos de todos los tipos pero no nulos? Creo que hablabas de la primera opción, pero prefiero estar seguro. Cordial saludo, Juan Romero -- TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo agradecerán
