[MySQL] Qualcuno mi spiega le: INDEX e FOREIGN KEYS

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 862
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

[MySQL] Qualcuno mi spiega le: INDEX e FOREIGN KEYS

Messaggio da TommyB1992 »

Faccio penitenza e mi vergogno di non sapere quando utilizzarle...

Ho vissuto tutta la mia infima esistenza utilizzando solo campi PRIMARY KEY, UNIQUE KEY e FULLTEXT.

Qualcuno mi può spiegare con degli esempi pratici (possibilmente non su auto e biciclette ma su utenti, forum, topic e messaggi) per farmi entrare nella LOGICA del loro utilizzo.

p.s. si ho letto guide in merito ma niente... sono impedito...

// EDIT ha senso utilizzare le FOREIGN KEYS se utilizzo già i TRIGGER?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [MySQL] Qualcuno mi spiega le: INDEX e FOREIGN KEYS

Messaggio da Zoff »

Le foreign key sono il motivo per cui si usano i DB relazionali, se non le usi probabilmente non hai bisogno di SQL.
Se usi i TRIGGER per risolvere le relazioni stai sbagliando tutto, hai mai studiato o almeno letto una guida/manuale sui DB relazionali?

Visto che chiedi esempi.
FOREIGN KEY:
In un forum ogni messaggio appartiene ad un utente, per cui la tabella messaggi avrà una foreign key che conterrà per ogni messaggio la primary key dell'utente a cui appartiene.

INDEX:
In un forum puoi aver bisogno di fare le ricerche per titolo di una discussione, se crei un indice sul campo titolo della tabella discussioni aumenti notevolmente le performance
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 862
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [MySQL] Qualcuno mi spiega le: INDEX e FOREIGN KEYS

Messaggio da TommyB1992 »

almeno letto una guida/manuale sui DB relazionali?

Se intendi guide generali sui DB relazionali no... se intendi anche su UN database relazionale si (MySQL).

Se usi i TRIGGER per risolvere le relazioni stai sbagliando tutto

Perchè è pratica sbagliata nel 2017 per motivazioni X eY (se si allora quali), o per altre motivazioni?

Grazie della celere risposta.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [MySQL] Qualcuno mi spiega le: INDEX e FOREIGN KEYS

Messaggio da Zoff »

TommyB1992 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4959127#p4959127][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:almeno letto una guida/manuale sui DB relazionali?

Se intendi guide generali sui DB relazionali no... se intendi anche su UN database relazionale si (MySQL).
Per guida/manuale intendo un documento che ne spieghi caratteristiche, funzionamento e progettazione. Forse tu hai letto solo la documentazione?
TommyB1992 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4959127#p4959127][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Se usi i TRIGGER per risolvere le relazioni stai sbagliando tutto

Perchè è pratica sbagliata nel 2017 per motivazioni X eY (se si allora quali), o per altre motivazioni?
Perché i TRIGGER sono generiche operazioni che possono essere eseguite secondo alcune condizioni.
Per memorizzare e validare le relazioni servono le FOREIGN KEY.
I TRIGGER sono preferibili a FOREIGN KEY solo quando lo storage engine non le supporta.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti