Pop quiz: you're writing a standalone cross-platform application that needs
to handle a large number of data files. The data may be disparate in type but
it has some qualities in common. You want the user to be able to browse or
search the data and, of course, you want your application to be responsive.
What are some possible ways to handle the data? The most rudimentary would be
to allow the user to specify the location of the data files and have the
application search those files each time the user needs data, much like a
file finder may search for text in a file.
A slightly more elegant and faster method would be to create a file
containing information about the data files; this metadata could then be
searched to locate the correct data file. This is reasonably easy to
implement, but complex queries are difficult to perform and adding support
for future data type... (more)