Brainstorming best way of having records autopopulate
I have the sample db based off of invoices, set up for my gym. Invoices are workouts, products are exercises, etc. It works very well thanks to the help of the forum here. Now the fun part... make it more effecient.
We have some products that are laid out already, for example Progam A may have 28 workouts done in order 1-28. As of right now I have it set up as a workout (invoice) has a field that has "Master Template" name and "Template Order". So the 25th workout of Program A would be Master Template = Program A and Template Order = 25.
I don't think this is the best way of doing this. What I would like to do is have it set up as a Customer is a program, and I assign workouts to the Program like I would a client. Does this idea make sense in terms of what else I want to do?
The ultimate goal of this setup is that I can assign programs to certain clients so Client ABC is doing Program A. When I click to add a new workout for a client it would run a check to see if they're on a template program or not. And from there if they are I would like it to check where they are in the program ie: 25th workout, and then fill in the next workout 26th. I would also like to have it check to see if they are missing some workouts and choose those first, but with the option of skipping. So for example if the last workout they did was the 25th workout of Program A but they've missed the 20th, the system would try to get the 20th filled out but with the option to bypass and go the 26th.
I'm just looking for some ideas of the best way of doing this? Should I have a "Program" table linked to CustomerID to have their programs in there as far as start and end times? Should I do a completely different table than Customers?