Domanda

Ecco le strutture dei miei due tavoli (chiavi primarie in tasti audaci ed estranei in testo italico)

Service_agrements ( ID , client_id, importo, data_begin, durata, * Servizi_id_1 *, * Services_id_2 *, * Services_id_3 *, * Services_id_4 *) Servizi ( ID , Date_Provisto, Descrizione, Staff_person)

L'idea alla base dei tavoli è quella basata su un accordo che la società fornisce un servizio fino a quattro volte. Così visto, i quattro campi di Service_agrements Table (Services_id_1, ...) ha quattro relazioni separate one-to-one separate con le tabelle dei servizi (campo ID). Mi sembra un po 'insolito, perché di solito ho visto solo una relazione tra due tavoli. Quindi so se questo è insolito o è ok, se è insolito, qual è la soluzione migliore (senza fusione dei campi dei servizi ai service_agrements. Poiché le tabelle dei servizi hanno anche alcuni record in servizio fornito senza un accordo.) .

È stato utile?

Soluzione

La struttura potrebbe essere persino più bella:

.

Service_agrements ( ID , client_id, importo, data_begin, durata);

Servizi ( ID , Date_Provisto, Descrizione, Staff_person);

Service_agrements_services ( ID , Type Enum (Service1, Service2 etc), service_agrement_id , service_id );

Nuova tabella, service_agreements_services Aggiungi una relazione molte a una tra servizio_agrement e servizi;

Vantaggi :
1) Per ogni nuovo servizio che fornisci ci saranno nuovi inserimenti (di solito meno in alto rispetto all'aggiornamento) 2) Puoi anche fornire più grandi servizi :)
3) Le relazioni tabelle diventano più semplici.

Grazie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top