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

Responder a