Mengabaikan, untuk saat ini, bagian SQL dari masalah, algoritme yang saya gunakan cukup sederhana:mulai dengan mengambil setiap kata dalam kamus Anda, dan menghasilkan versinya dengan huruf-huruf dalam urutan yang diurutkan, bersama dengan pointer kembali ke versi asli kata itu.
Ini akan memberikan tabel dengan entri seperti:
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 */
Kemudian ketika kami menerima input (katakanlah, "tac"), kami mengurutkan huruf-hurufnya, mencarinya di tabel kami dari huruf-huruf yang diurutkan yang digabungkan ke tabel kata-kata asli, dan itu memberi kami daftar kata-kata yang dapat dibuat dari masukan itu.
Jika Saya melakukan ini, saya akan memiliki tabel untuk itu dalam database SQL, tetapi mungkin menggunakan sesuatu yang lain untuk memproses daftar kata ke dalam bentuk yang diurutkan. Demikian juga, saya mungkin akan membiarkan pengurutan huruf input pengguna ke apa pun yang saya gunakan untuk membuat front-end, jadi SQL akan dibiarkan melakukan apa yang terbaik:manajemen basis data relasional.