Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question

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

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.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
up vote 0 down vote accepted

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.

share|improve this answer
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: – 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).

share|improve this answer

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