PDA

Visualizza la versione completa : db con relazione molti a molti


 
timberwolf
19-10-2010, 23:54
Avrei bisogno di un vostro consiglio, per un lavoro che mi appresto a fare per la primissima volta e cioé creare un database per un sito mio personale che sto facendo.. La mia conoscenza di PHP e MySQL é limitata, infatti oltre ad aver letto (e studiato) un libro sul php e mysql mi sono letto anche la guida, qui presente su html.it.. Da quanto sono riuscito a capire, per il tipo di database che vorrei creare é meglio usare una relazione tra tabelle di tipo molti a molti in quanto i dati di una tabella possono apparire in diverse tabelle e siccome nel db che vorrei creare le tabelle totali ed interessate dovrebbero essere 4 o 5, credo che questa sia la soluzione più adatta (ma felice di essere smentito per soluzioni più adatte ed efficenti..). Nella guida di html.it ho letto delle primary key e foreign key, e delle foreign key, se non ho capito male, andrebbero usate quando appunto, i campi di una tabella sono presenti anche all'interno di un'altra tabella (anche qui correggetemi se sbaglio). Ora un altro punto é, le foreign key devono essere definite solo nella tabella che ospiterà i dati provenienti dalle altre tabelle, come ad esempio gli id di altre tabelle?. Esempio, se nella tabella A, voglio che siano presenti i campi delle tabelle B,C,D ed E. Definirò solo nella tabella A come foreign key i campi delle rispettive tabelle?

Mashin
20-10-2010, 10:01
In linea teorica le chiavi esterne son dei campi che contengono riferimenti a campi di alte tabelle.

Esempio se sulla tabella A vuoi un riferimento per recuperare dati da B allora dovrai avere un campo (su A) B_ID che conterra' il rispettivo valore di B.ID

Ad ogni modo oltre al manuale di MySql ti consiglio di cercarti qualcosa su basi di dati che tratti la parte teorica (chiavi primarie, esterne, relazioni, normalizzazioni e quanto) o rischi davvero di fare uno schema di DB poco consono.

Ad esempio di solito relazioni molti a molti non si fanno. Si predilige "spezzare" interponendo un'ulteriore entita' (tabella) tra le due coinvolte (mettiamo A e B) in modo che la relazioni diventi A-C uno a molti e C-B molti a uno.

timberwolf
20-10-2010, 13:37
ho capito, le famose tabelle di lookup? giusto?.. hai delle letture da consigliarmi?.. mi servono proprio per chiarire meglio questi concetti, in modo da creare un db semplice e pulito (anche perché quello che devo fare é un lavoro semplice, ma se comincio con il piede giusto é meglio no? ;))

grazie :)

Mashin
20-10-2010, 16:00
Purtroppo al momento non ho niente sottomano e manco internet libero.

Son sicuro pero' che se cerchi come argomento "basi di dati" qualcosa che parta da 0 lo trovi nella rete.

Buono studio.

timberwolf
20-10-2010, 16:55
grazie :)

Loading