Questione : Using le FK “primarie„

Spiacente circa il titolo di meno-che-descrittivo.  Sto avendo una difficoltà mettere l'edizione in words.

Let noi diciamo che ho CLIENTI della tabella che ha appena 2 colonne: Identificazione e NAME

And ho altri INDIRIZZI di tabella che ha che le informazioni di indirizzo standard (via, città, condizione, chiusura lampo, ecc) e le FK ai CLIENTI (questo esempio, lo richiederò CUSTOMER_FK).  Tutto il cliente può avere addresses.

I ha voluto assegnare una fila dagli INDIRIZZI per essere l'indirizzo “primario„ difetto/di fatturazione per un cliente.  Un cliente dovrebbe soltanto avere una fatturazione/difetto/pensiero iniziale primario di address.

My doveva aggiungere una colonna ai CLIENTI denominati BILLING_ADDRESS che era le FK alla fila negli INDIRIZZI che hanno servito da fatturazione/difetto/indirizzo primario.  Ciò sembra un po'ridondante, benchè e più d'importanza rende l'inserzione un poco meno elegante.  Sulla generazione del cliente nuovo dall'input dell'utente, per esempio, dovrei generare i CLIENTI remo in primo luogo, gru a benna a che l'identificazione, quindi genera gli INDIRIZZI rema (passando ai CLIENTI identificazione generata appena a CUSTOMER_FK), quindi va indietro ed aggiorna la fila dei CLIENTI con l'identificazione dell'INDIRIZZO di recente creazione per servire da FK per la fatturazione/difetto/pensiero primario di address.

Another era, anziché il di cui sopra, aggiunge una colonna agli INDIRIZZI di che era un indicatore booleano indipendentemente da fatto che la fila era la fatturazione/difetto/indirizzo primario per quel cliente, ma AFAIK là è senso accertarsi che questo sia limitato ad un singolo indirizzo per alcun customer.

I che indovina questo non è quello raro e ci è probabilmente una soluzione incorporata che non sono informato di.  Se non, è ci una soluzione che più diretta chiunque potrebbe suggerire?

TYIA

Using MySQL 5 (e PHP 5.3, se quello importa).
class= del

Risposta : Using le FK “primarie„

Penso…

aggiungere il campo ADDRESSTYPE alla tabella di INDIRIZZI (questo campo sarà usato per denotare il tipo di indirizzo -- fatturazione/difetto/primario -- potete usare 1/2/3 in breve)

allora fare funzionare questo ordine:

ALTERARE GLI INDIRIZZI DI TABELLA AGGIUNGONO UNICO (CUSTOMER_FK, ADDRESSTYPE);

sostenere tutto primo!

Quello dovrebbe fare la COMBINAZIONE del cliente/tipo di indirizzo unici…
Altre soluzioni  
 
programming4us programming4us