Recently I worked on a feature that involved displaying a list of Folders using an auto-complete field. A simple enough task, but one that had a bit of complexity behind it. For starters, each organization in our system has their own "folder hierarchy", or a tree structure of folders, that could be one to many layers deep. The second thing being that the UI we wanted -- auto-complete -- meant that we would need to "search" through the folders to find a match (based on the user's input) as well as display the path information (where the folder lives) so that the user can differentiate folders if they happen to have the same or similar name. Since it was auto-complete, the searching also needed to be fast or else the user experience would be annoying.
The folder tree structure was stored in a MySQL DB table in a very typical self-referencing schema that represented hierarchical data. Each row of data could have a column that referenced the …
[Read more]