Cuestión : Usar FK “primarias”

Apesadumbrado sobre el título menos-que-descriptivo.  Estoy teniendo una dificultad el poner de la edición en words.

Let que decimos que tengo CLIENTES de una tabla que tiene apenas 2 columnas: La identificación y NAME

And tengo otras DIRECCIONES de tabla que tiene la información de dirección estándar (calle, ciudad, estado, cierre relámpago, etc) y FK a los CLIENTES (este ejemplo, lo pediré CUSTOMER_FK).  Cualquier cliente puede tener addresses.

I quiso asignar una fila de DIRECCIONES para ser la dirección “primaria” de la facturación/del defecto para un cliente.  Un cliente debe solamente tener un mandar la cuenta/defecto/pensamiento inicial primario de address.

My debía agregar una columna a los CLIENTES llamados BILLING_ADDRESS que era FK a la fila en las DIRECCIONES que sirvieron como la facturación/el defecto/la dirección primaria.  Esto parece levemente redundante, aunque, y más importantemente hace la inserción un poco menos que elegante.  En crear a un nuevo cliente de la entrada del usuario, por ejemplo, tendría que crear a los CLIENTES remo primero, el gancho agarrador a el cual la identificación, después crea las DIRECCIONES rema (pasando los CLIENTES LA identificación apenas generada a CUSTOMER_FK), después vuelve y pone al día la fila de los CLIENTES con la identificación de la DIRECCIÓN creada recientemente para servir como las FK para la facturación/el defecto/el pensamiento primario de address.

Another estaba, en vez del antedicho, agrega una columna a las DIRECCIONES de la cual era un indicador boleano independientemente de si la fila era la facturación/el defecto/la dirección primaria para ese cliente, pero AFAIK allí no es ninguna manera de asegurarse que esto está limitada a una sola dirección para ningún customer.

I que conjetura esto no es ése raro, y hay probablemente una solución incorporada que no soy consciente de.  ¿Si no, hay una solución más directa que cualquier persona podría sugerir?

TYIA

Using MySQL 5 (y PHP 5.3, si importa eso).
class= del

Respuesta : Usar FK “primarias”

Pienso…

agregar el campo ADDRESSTYPE a la tabla de DIRECCIONES (este campo será utilizado para denotar el tipo de dirección -- el mandar la cuenta/defecto/primario -- usted puede utilizar 1/2/3 para el cortocircuito)

entonces funcionar con este comando:

ALTERAR LAS DIRECCIONES DE TABLA AGREGAN ÚNICO (CUSTOMER_FK, ADDRESSTYPE);

¡sostener todo primer!

Eso debe hacer la COMBINACIÓN del cliente/del tipo de la dirección únicos…
Otras soluciones  
 
programming4us programming4us