I'm creating a report designer for my customers so they can create any kind of report based on the data in a mysql table. These users have no knowledge of databases or queries so I need to make the UI as simple as possible. How can I present this in a way that allows tables with complex and deep joins. I understand that I can't possibly make it as simple that a 4th grader could use it, and I undertand they'll still need training on the usage. But I need to know how to make it flow logically so that it's easy to remember how to use. Any ideas?

  • A little confused. Are the users creating database tables through the GUI, or just surfacing data that is already in a database, or both? – DigiKev Jan 29 '12 at 22:49
  • the data is already there. They are just designing the queries to pull the data from the database. – LordZardeck Jan 29 '12 at 23:08

This is a common need. Save yourself and your clients time and headaches by using one of the many existing solutions.

One quick example from googling:

And another Stack Overflow thread with a number of them listed:

| improve this answer | |
  • all of those look good except they only work well for "flat" table relations, that is, a 1-1 ratio. If i have hasMany table relationships, none of these make that relation easy to distinguish. I guess I can use them as a starting point though – LordZardeck Jan 30 '12 at 0:05
  • Hmm. For another starting point, en.wikipedia.org/wiki/Comparison_of_database_tools. – Adam Jan 30 '12 at 0:53
  • Come to think of it, a number of programs also have SQL query builders. I've heard Filemaker is nice. Crystal reports and Microsoft Access both have query building/report generating features too. – Adam Jan 30 '12 at 0:57
  • have you ever used navicat? their query builder is nice, and I like it, but I know about tables and joins and all that. Do you think that might be a good idea to model after? – LordZardeck Jan 30 '12 at 3:13
  • 2
    I haven't used it. You might try getting 2-3 simple tools that you like, coming up with some small tasks that prospective users will encounter, and sitting with them while they attempt to accomplish them. In other words, provide options and let them make a choice based on their own experience with product usability and other features (like price, support, etc). No need to learn the tools that well beforehand. You can always train them on their chosen tool once they choose. – Adam Jan 30 '12 at 3:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.