Sto progettando una struttura di database con il seguente esempio semplificato:È errato avere "ridondanza di chiave esterna" in un database?
Team has many members
Member has many clients
Client has many projects
Supponendo miei oggetti hanno questi parametri:
Team: id, type
Member: id, team_id, name
Client: id, member_id, email
Project: id, client_id
E 'abbastanza semplice da trovare cliente di un progetto, o un membro di un cliente, o la squadra di un membro.
Tuttavia, supponendo di voler trovare il team di un progetto, ad esempio, devo prima trovare il cliente di un progetto, poi il membro di un cliente e poi il team del membro.
potrei aggiungere un team_id direttamente al progetto, in questo modo:
Project: id, client_id, team_id
Mi rendo conto, tuttavia, questo aggiunge un certo livello di ridondanza in quanto tale informazione è a disposizione dalla "risalendo l'albero rapporto ". È una cattiva idea?
Grazie!
Non intendi "ogni membro del team ha molti clienti" e "il cliente di ogni membro del team ha molti progetti"? –
Cosa considera "ridondanza dannosa"? Stai parlando dello stesso tipo di "ridondanza dannosa" di cui si occupa la teoria della normalizzazione? O è la tua misura di ciò che è "dannoso" una misura diversa? –