sql >> Base de Datos >  >> RDS >> Mysql

La mejor manera de almacenar y recuperar sinónimos en la base de datos mysql

No use una (una) cadena para almacenar diferentes entradas.

En otras palabras:cree una tabla de palabras (ID_palabra, palabra) y una tabla de sinónimos (ID_palabra, ID_sinónimo) y luego agregue la palabra a la tabla de palabras y una entrada por sinónimo a la tabla de sinónimos.

ACTUALIZAR (tercer sinónimo añadido)

Su tabla de palabras debe contener todas las palabras (TODAS), su tabla de sinónimos solo contiene punteros a sinónimos (¡no una sola palabra!) ..

Si tuviera tres palabras:A, B y C, que son sinónimos, su base de datos sería

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  

No tenga miedo de las muchas entradas en SYNONYM_TABLE, serán administradas por la computadora y son necesarias para reflejar las relaciones existentes entre las palabras.

Segundo enfoque

También puede tener la tentación (¡no creo que deba!) de optar por una tabla que tenga campos separados para palabra y una lista de sinónimos (o ID) (word_id,word,synonym_list). Tenga en cuenta que eso es contrario a la forma en que funciona una base de datos relacional (un campo, un hecho).