Firstly I would like to apologies if this is not the correct place to ask this question but I know how good community spirit is around here from my time in Stack Overflow.

I am very new to the world of databases but I am looking to create an application that will use a database in the background to hold data.The application is going to be an action plan creator and will hold a lot of data but I have no idea how to design my database. Therefore I am looking for some help.

I will be using MySQL for the database and Java for the application.


I tried to type out how I would like the design to be but ended up confusing myself so guessed that I would have no luck explaining on here. Therefore, here is an image of what I will be trying to achieve for each action plan:


I hope this helps but to try and explain further, each action plan would have one of these (I am aware that I would have to run some kind of expression to get this) and each time the action number would start from 1. Although I have only added 3 updates in the example above, each action number would have to be able to expand to theoretically unlimited amount.

Reading the tutorials I have spotted so far, I know that this requires some kind of relational database. However, I am not able to get my head around how to set this all up.

I know this is a BIG ask but I would be very grateful for any advise anyone has to offer and I am eager to learn more.

closed as too broad by Joel Brown, RolandoMySQLDBA, Mark Storey-Smith, Philᵀᴹ, Max Vernon Jun 26 '14 at 19:20

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Sounds like you have an idea of what data you want to store. I would work on breaking that out into tables. Just as a quick example. Action Plans, Actions, Persons, Updates. Then think about keys that uniquely identify a row in the tables. Figure out the relationships between the tables. Then work on normalization and revise your tables. I believe once you get started it'll make more sense and it's not as overwhelming. Then as you run into problems or have questions you can ask. – SQLChao Jun 25 '14 at 21:21

Based on the suggestion of JChao (minus the Action Plans table), what do you think of something like this?

This way, you can add as many updates as you want, but they are still linked to the actions with the foreign key Ref_Action. And if you discover that Allan's name is actually Alan, you just have to edit his entry in the People table.

  • That makes sense and I was just drawing (by hand) something up very similar. However, Once I have created some test tables (In Access to test with) I am now just having issues displaying it correctly. So I want my table to show the person's name, not the ID of the person. – Petay87 Jun 26 '14 at 8:41
  • In my opinion (and I am a newbie as well), the hardest part is to design the tables and the relationships properly. When this is done, and at last for simple queries, it will just be about finding your feet in Access. Here is a link to a good tutorial: gcflearnfree.org/access2013 – patpdm Jun 26 '14 at 9:39

The best first thing you can do is to look around at Open Source offerings in the same area as your own interest. I'm not exactly sure what you mean by "action plan creator" (clarify?). The beauty of Open Source is that you can run the stuff, see what you like and then open up the hood and see how it's done for the applications that appeal to you. Don't forget the KISS and YAGNI principles (Keep It Simple Stupid and You Ain't Gonna Need It). Don't be overambitious on your first pass and don't forget that you'll (very probably :-) ) have to throw the first app away anyway (Fred Brooks).

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