Inserire un array all'interno di una cella del database

Giovanni Rossi

Nuovo Utente
19 Mar 2016
4
0
0
Buongiorno a tutti,
mi sono appena iscritto per porvi questa domanda alla quale non sono mai riuscito a dare una risposta certa, anche facendo diverse ricerche: è buona norma inserire un array all'interno di una cella del database?
Magari anche formattandolo in questo modo: valore1|valore2|...

Ovviamente è possibile, mi chiedo solo se sia la scelta migliore o se sia sconsigliato.

Per essere più chiaro faccio un esempio:
supponiamo di avere una tabella con le colonne "utente", "password", "email", "sitiweb"; magari un utente vuole inserire più siti web nella cella dei siti. Posso fare come sopra per poi fare un explode per visualizzarli o c'è un modo migliore?

Grazie a tutti in anticipo!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non vedo cosa ci sia di male anzi è molto comodo. Io memorizzo i dati in json in questo modo posso salvare gli elementi con chiave associativa e riutilizzarli comodamente anche in javascript.
Codice:
{"eta":28,"prov":"TN","hobby":"pesca"}
una volta estratti con json_decode() si possono ultilizzare tutti
 
Ultima modifica:

Giovanni Rossi

Nuovo Utente
19 Mar 2016
4
0
0
Ciao, non vedo cosa ci sia di male anzi è molto comodo. Io memorizzo i dati in json in questo modo posso salvare gli elementi con chiave associativa e riutilizzarli comodamente anche in javascript.
Codice:
{"eta":28,"prov":"TN","hobby":"pesca"}
una volta estratti con json_decode() si possono ultilizzare tutti
Grazie mille, se mi dici che va benissimo così sono a posto :)

Solo per curiosità, c'è un modo per fare la stessa cosa sfruttando gli strumenti di mysql? Magari anche per annidare non solo una riga ma un'intera tabella all'interno di una cella?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non sono sicuro di aver capito la domanda ma utilizzando il formato json puoi inserire quanti recordo vuoi
Codice:
[{"eta":28,"prov":"TN","hobby":"pesca"},{"eta":39,"prov":"TN","hobby":"scacchi"}]
quando li estrai ti crei una tabella, devi stare attento al tipo di campo che utilizzi, mi pare che VARCHAR sia limitato a 255 caratteri TEXT è più capiente ma non ricordo fino a quanto.
 

Giovanni Rossi

Nuovo Utente
19 Mar 2016
4
0
0
non sono sicuro di aver capito la domanda ma utilizzando il formato json puoi inserire quanti recordo vuoi
Codice:
[{"eta":28,"prov":"TN","hobby":"pesca"},{"eta":39,"prov":"TN","hobby":"scacchi"}]
quando li estrai ti crei una tabella, devi stare attento al tipo di campo che utilizzi, mi pare che VARCHAR sia limitato a 255 caratteri TEXT è più capiente ma non ricordo fino a quanto.
Sì, intendevo se tutto ciò è possibile farlo solo con mysql, per esempio inserendo dei sottocampi sql nella cella in questione, per poi richiamare i singoli valori con funzioni apposite di mysql.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non che io sappia. Puoi però collegare due tabelle sql tra di loro tramite un campo in comune e usare JOIN per unirle in una query