Hiện tại, bỏ qua phần SQL của vấn đề, thuật toán tôi sử dụng khá đơn giản:bắt đầu bằng cách lấy từng từ trong từ điển của bạn và tạo một phiên bản của nó với các chữ cái theo thứ tự được sắp xếp, cùng với một con trỏ quay lại sang phiên bản gốc của từ đó.
Điều này sẽ cung cấp một bảng với các mục nhập như:
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 */
Sau đó, khi chúng tôi nhận được một đầu vào (giả sử, "tac"), chúng tôi sắp xếp các chữ cái đó, tìm kiếm nó trong bảng các chữ cái đã sắp xếp được nối với bảng các từ gốc và điều đó cung cấp cho chúng tôi danh sách các từ có thể được tạo từ đầu vào đó.
Nếu tôi đang làm điều này, tôi sẽ có các bảng cho điều đó trong cơ sở dữ liệu SQL, nhưng có thể sử dụng thứ gì đó khác để xử lý trước danh sách từ thành biểu mẫu đã sắp xếp. Tương tự như vậy, tôi có thể sẽ sắp xếp các ký tự đầu vào của người dùng thành bất cứ thứ gì tôi đang sử dụng để tạo giao diện người dùng, vì vậy SQL sẽ được để làm những gì nó tốt:quản lý cơ sở dữ liệu quan hệ.