N'utilisez pas une (une) chaîne pour stocker différentes entrées.
En d'autres termes :Construisez une table de mots (word_ID,word) et une table de synonymes (word_ID,synonym_ID) puis ajoutez le mot à la table de mots et une entrée par synonyme à la table de synonymes.
MISE À JOUR (3ème synonyme ajouté)
Votre table de mots doit contenir tous les mots (TOUS), votre table de synonymes ne contient que des pointeurs vers des synonymes (pas un seul mot !) ..
Si vous aviez trois mots :A, B et C, qui sont des synonymes, votre DB serait
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'ayez pas peur des nombreuses entrées dans la SYNONYM_TABLE, elles seront gérées par l'ordinateur et sont nécessaires pour refléter les relations existantes entre les mots.
2ème approche
Vous pourriez également être tenté (je ne pense pas que vous devriez !) d'utiliser une table qui a des champs séparés pour le mot et une liste de synonymes (ou identifiants) (word_id,word,synonym_list). Attention, cela est contraire au fonctionnement d'une BD relationnelle (un champ, un fait).