PDA

View Full Version : [Mysql + PHP]Gestire array


Mattyfog
04-02-2011, 15:14
Salve a tutti!
Mi trovo di fronte a un problema di strutturazione del mio software. La questione è questa: il mio database conterrà delle parole e vorrei che ad ogni parola fossero associati i sinonimi.
La cosa è semplice ma voglio essere chiaro. Immaginate una tabella come questa:
id (primary key) | parola | sinonimi
1 | buono | 2
2 | bravo | 1
3 | cattivo | 4, 5, 6
4 | malvagio | 3, 5, 6
5 | crudele | 3, 4, 6
6 | maligno | 3, 4, 5

In una tabella come questa il campo sinonimi potrebbe contenere più numeri poichè una parola potrebbe avere più sinonimi. Come posso salvare questi numeri? C'è un metodo più pratico, intelligente e performante che salvarli in un campo di tipo text o varchar e separarli con la virgola o salvarli ? Credo sia un problema tutto sommato comune.
Grazie mille!

ccodre
04-02-2011, 15:21
dovresti avere una relazione n a n tra le tabelle.

tipo:

parole
--------------
id - parola
1 - blah
2 - bhuo
3 - sisid
--------------

sinonimi
--------------
id - sinonimo
1 - ferw
2 - qwer
3 - rasda
4 - kjsdf
--------------

e poi una tabella:
parole_sinonimi
----------------------------
id - id_parola - id_sinonimo
1 - 1 - 3
2 - 1 - 4
3 - 2 - 1
-----------------------------

Mattyfog
04-02-2011, 19:58
Capito. Comunque le parole e i sinonimi si troveranno tutte nella stessa tabella dato che sono tutte parole ;)
Comunque userò il metodo che mi hai detto tu di usare una tabella apposta per le relazioni fra parola e sinonimi ;)

ndakota
04-02-2011, 20:20
parole

id parola
1 buono
2 bravo
3 intelligente
4 acuto

sinonimi

parola sinonimo
1 2
3 4

khelidan1980
05-02-2011, 01:24
Capito. Comunque le parole e i sinonimi si troveranno tutte nella stessa tabella dato che sono tutte parole ;)
Comunque userò il metodo che mi hai detto tu di usare una tabella apposta per le relazioni fra parola e sinonimi ;)

Un altro metodo sarebbe quello di studiarsi un buon libro di basi di dati! ;)

Mattyfog
05-02-2011, 18:54
Scusa ma dopo che uno sa come effettuare le query quello che sto chiedendo si impara con la pratica no?