Пренебрегвайки за момента SQL частта от проблема, алгоритъмът, който бих използвал, е доста прост:започнете, като вземете всяка дума от речника си и създадете нейна версия с буквите в сортиран ред, заедно с указател назад към оригиналната версия на тази дума.
Това ще даде таблица със записи като:
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 */
След това, когато получим вход (да речем, "tac"), ние сортираме буквите му, търсим го в нашата таблица от сортирани букви, свързани с таблицата на оригиналните думи, и това ни дава списък с думите, които могат да бъдат създадени от този вход.
Ако аз правех това, щях да имам таблиците за това в SQL база данни, но вероятно ще използвам нещо друго, за да обработя предварително списъка с думи в сортираната форма. По същия начин вероятно бих оставил сортирането на буквите на потребителския вход на това, което използвах, за да създам предния край, така че SQL ще бъде оставен да прави това, в което е добър:управление на релационни бази данни.