Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira de armazenar e recuperar sinônimos no banco de dados mysql


Não use uma (uma) string para armazenar entradas diferentes.

Em outras palavras:Construa uma tabela de palavras (word_ID,word) e uma tabela de sinônimos (word_ID,synonym_ID) e adicione a palavra à tabela de palavras e uma entrada por sinônimo à tabela de sinônimos.

ATUALIZAÇÃO (adicionado 3º sinônimo)

Sua tabela de palavras deve conter todas as palavras (TODAS), sua tabela de sinônimos contém apenas ponteiros para sinônimos (nem uma única palavra!) ..

Se você tivesse três palavras:A, B e C, que são sinônimos, seu DB seria
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  

Não tenha medo das muitas entradas na SYNONYM_TABLE, elas serão gerenciadas pelo computador e são necessárias para refletir as relações existentes entre as palavras.

2ª abordagem

Você também pode se sentir tentado (acho que não deveria!) a usar uma tabela que tenha campos separados para palavra e uma lista de sinônimos (ou IDs) (word_id,word, synonym_list). Esteja ciente de que isso é contrário à maneira como um banco de dados relacional funciona (um campo, um fato).