sql >> Database >  >> RDS >> Mysql

Beste manier om synoniemen op te slaan en op te halen in database mysql

Gebruik geen (één) string om verschillende items op te slaan.

Met andere woorden:maak een woordtabel (word_ID,word) en een synoniementabel (word_ID,synoniem_ID) en voeg het woord toe aan de woordtabel en één item per synoniem aan de synoniementabel.

UPDATE (derde synoniem toegevoegd)

Uw woordtabel moet elk woord (ALL) bevatten, uw synoniementabel bevat alleen verwijzingen naar synoniemen (geen enkel woord!) ..

Als je drie woorden had:A, B en C, die synoniemen zijn, zou je DB zijn

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  

Wees niet bang voor de vele vermeldingen in de SYNONYM_TABLE, ze worden beheerd door de computer en zijn nodig om de bestaande relaties tussen de woorden weer te geven.

2e benadering

Je zou ook in de verleiding kunnen komen (ik denk niet dat je dat zou moeten doen!) om één tabel te gebruiken met aparte velden voor woord en een lijst met synoniemen (of ID's) (word_id,word,synonym_list). Pas op dat dit in strijd is met de manier waarop een relationele database werkt (één veld, één feit).



  1. MariaDB 10 CentOS 7 bewegende datadir-ellende

  2. Batch-modus Bitmaps in SQL Server

  3. Is een SQL-injectie eigenlijk wel mogelijk door een tweede query toe te voegen?

  4. Boom sorteren met een gematerialiseerd pad?