I am working on an expert system which will run through a website I have in development. The purpose is to provide step by step instructions based on Project by state, so no matter who is working the queue, we end up with a consistent build. So this question is based in OOP theory and how to bring about a result (storing the data in a database... Because if you can put it in there... I can retrieve it... hopefully, lol. So I am going to use a dumb made up example so I don't give up the secret sauce. So lets go with cake. Bob is our baker, and Karen is our master chef. Karen has checked with each state law on how to make each specific kind of cake that we have seen, and we need to consider a default outcome for recipies she hasn't seen.
So Bob looks in his queue and sees a ticket to make a Strawberry Cake in Colorado. Karen has predefined that Bob need to 1) pour batter A into 2 baking pans, 2) bake the cakes 3) ice the middle using frosting C and then 4) send to shipping. Bob see's the "preflight" instructions and follows them diligently. Bob once again looks in his queue and sees a ticket for a Strawberry Cake in Hawaii (State law says we have to use batter B (gluten free)). Karen has predefined that Bob need to 1) pour batter B into 2 baking pans, 2) bake the cakes 3) ice the middle using frosting C and then 4) send to shipping.
A ticket can have up to 3 cakes on it ever, And Karen needs to be notified whenever there is a request that does not have a preflight instruction.
So if you have read through all of that, how would you design the database to hold the data?