Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo migliore per archiviare e recuperare sinonimi nel database mysql

Non utilizzare una (una) stringa per memorizzare voci diverse.

In altre parole:costruisci una tabella di parole (ID_parola,parola) e una tabella di sinonimi (ID_parola,ID_sinonimo), quindi aggiungi la parola alla tabella di parole e una voce per sinonimo alla tabella dei sinonimi.

AGGIORNAMENTO (aggiunto 3° sinonimo)

La tua tabella di parole deve contenere ogni parola (TUTTO), la tua tabella di sinonimi contiene solo puntatori a sinonimi (non una singola parola!) ..

Se avessi tre parole:A, B e C, che sono sinonimi, il tuo DB sarebbe

WORD_TABLE            SYNONYM_TABLE
ID | WORD             W_ID | S_ID
---+-----             -----+-------
1  | A                  1  |  2
2  | B                  2  |  1
3  | C                  1  |  3
                        3  |  1
                        2  |  3
                        3  |  2  

Non aver paura delle numerose voci nella SYNONYM_TABLE, saranno gestite dal computer e servono per riflettere le relazioni esistenti tra le parole.

2° approccio

Potresti anche essere tentato (non credo che dovresti!) Ad andare con una tabella che ha campi separati per parola e un elenco di sinonimi (o ID) (word_id, parola, synonym_list). Attenzione che è contrario al modo in cui funziona un DB relazionale (un campo, un fatto).