Database Design – Designing a Fitness/Weight Lifting Routine Database

database-designdesign-patterns

I'd like to create an app similar to Barbell Pro for Android, for practice / interest / educational purposes really. Or even as another example for database purposes, Fitocracy

The problem is, I have no idea how the database could be designed… For example:

  • We have a 1000 Persons using the app
  • Each Person could have 1-7 individualised WorkoutRoutines, depending on the day. (Perhaps even more -> AM workouts / PM workouts)
  • Each WorkoutRoutine has an individual set of Exercises, with some crossover e.g. someone could do Bench Press on Monday and on Friday afterall.
  • Each Exercise has a number of Sets
  • Each Set has a number of Reps

Now to me, this seems like it could potentially be a large amount of information to store for Each Person, and maybe pretty complicated to do so.

I only have some experience with relational databases and I don't know how I'd go about designing that in an efficient matter for a relational database.

I'm not asking for a design, just how I'd begin to go about it. The potential complexity is daunting for me due to lack of database experience.

Maybe it's not even that complicated, but like I say, ignorance from myself.

Best Answer

Here is a prototype database schema. It allows the creation of different exercise routines, assigns those routines to a person by date, and even has a place to log the exercises executed, and the number of reps.

enter image description here

Related Topic