Ciao ragazzi, stò facendo un sito per un cliente, mi ha chiesto di farmi un catalogo, solo che qualche prodotto potrebbe essere inserito in due categorie, come mi conviene comportarmi??
Creo due colonne nella tabella con cat1 e cat2??
![]()
![]()
Ciao ragazzi, stò facendo un sito per un cliente, mi ha chiesto di farmi un catalogo, solo che qualche prodotto potrebbe essere inserito in due categorie, come mi conviene comportarmi??
Creo due colonne nella tabella con cat1 e cat2??
![]()
![]()
Altrimenti crei una colonna sola, categorie.
Con i valori salvati cosi.
1,4,6.
Anche siCosì non appesantisco tanto il database
![]()
E puoi gestire n associazioni...
Magari qualcuno piu bravo ha soluzioni piu ottimizzate.
Aspettiamo.![]()
La soluzione corretta e' di fare una relazione many-to-many. Con altre parole fare una terza tabella per l'unione, con ad esempio i campi: id, id_articolo, id_categoria dove definisci tutte le relazioni articolo-categoria.
In questo modo puoi assegnare un articolo a piu' categorie, vedere facilmente quanti articoli ha una categoria, e a quante categorie e' assegnato un articolo.
Dici una tabella ProdottieCategorie
Con una riga che ha come dati ad esempio idprodotto e idcategoria?
Esattamente. Se vi interessa approfondire l'argomento normalizzazione database, potete fare una ricerca su google, o cominciare con questa guida su dev.mysql.
Ciao, allora io ho creato queste tabelle
prodotti
id, nome, id_cat
categorie
id, nome
unione
id, id_prodotti, id_categoria
Solo che la qerry verso mysql io di solito la faccio così
Solo che non mi pare giusta per questa funzione che mi dici tu ai per caso un esempio??Codice PHP:
$query = mysql_query("SELECT * FROM categorie ecc..." );
Certo,Originariamente inviato da Alex90
Ciao, allora io ho creato queste tabelle
prodotti
id, nome, id_cat
categorie
id, nome
unione
id, id_prodotti, id_categoria
Solo che la qerry verso mysql io di solito la faccio così
Solo che non mi pare giusta per questa funzione che mi dici tu ai per caso un esempio??Codice PHP:
$query = mysql_query("SELECT * FROM categorie ecc..." );
Ma ti consiglio di studiare un po' di teoria se vuoi proseguire su questa stradaCodice PHP:
$query = mysql_query("SELECT * FROM categorie left join unione on categorie.id = unione.id_categoria ecc..." );
![]()
Si si ovvioAdesso prendo il manuale di php e gli do una letta
Cmq grazie mille