Then yes, using documents and Ditto is what you’re looking for. Ditto is extremely flexible
http://ditto.modxcms.com/
Consider that a document is nothing more than an entry in the site_content table. It has a number of fields for each entry. Template Variables (TVs) are a way of adding extra, custom data for each entry. So while it’s best not to go overboard on using it as a basic data store (i.e. storing several thousand entries), it works just fine.
For example, I use it in an "Our Employees" section of one site, using Ditto to aggregate the employee pages and some Javascript to open/close the bio and image of each employee as the name is clicked on. The client can easily add/remove employees, and edit the bios and update the images since it’s all just documents.
On the other hand, for the same site, in managing a words-and-phrases translation terminology database involving several thousand phrases in several languages, I use custom tables and a fancy AJAX grid for display, with a custom Manager module also using an AJAX grid for management.