V tuto chvíli ignoruji SQL část problému, algoritmus, který bych použil, je poměrně jednoduchý:začněte tím, že vezmete každé slovo do svého slovníku a vytvoříte jeho verzi s písmeny v seřazeném pořadí spolu s ukazatelem zpět na původní verzi tohoto slova.
Vznikne tabulka se záznamy jako:
sorted_text word_id
act 123 /* we'll assume `act` was word number 123 in the original list */
act 321 /* we'll assume 'cat' was word number 321 in the original list */
Když pak obdržíme vstup (řekněme „tac“), seřadíme jeho písmena, vyhledáme je v naší tabulce setříděných písmen spojených s tabulkou původních slov, a to nám dá seznam slov, která lze vytvořit z tento vstup.
Pokud já dělali to, měl bych pro to tabulky v databázi SQL, ale pravděpodobně bych použil něco jiného k předběžnému zpracování seznamu slov do seřazeného tvaru. Stejně tak bych pravděpodobně nechal třídění písmen uživatelského vstupu na cokoliv, co jsem použil k vytvoření front-endu, takže SQL by bylo ponecháno na to, v čem je dobré:na správu relačních databází.