Link to home
Start Free TrialLog in
Avatar of the_b1ackfox
the_b1ackfoxFlag for United States of America

asked on

Storing OOP data in a Mysql DB

Hello experts,

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?
Avatar of David Favor
David Favor
Flag of United States of America image

Likely best to store your data as JSON.

So your data will... just be data... Your code will be OOP to pack/save/retrieve/unpack/use your JSON data.

You can also use other data forms like YAML + MySQL provides a huge amount of built in intelligence around JSON data.
Before you can design the database, you have to decide how you are going to recognize the conditions involved in making the decisions.  It looks to me like your selection process needs to list the available recipes along with 'Other' which is the condition where Karen gets notified.  That's the simple version.  Maybe a form that includes the necessary options for doing the data lookup.
Avatar of the_b1ackfox


The condition for notification will be pretty easy...  Cake+state has no recipe then notify Karen.  We'd use a form to capture the cake requests, and Karen would also have a form to assign steps for the Cake+State combo
Avatar of lenamtl
Flag of Canada image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You can use CRON, as lenamtl suggested.

Sometimes more immediate/realtime notifications are required.

For this, you'll use triggers to run some external script.

Tip: Plumb your triggers to run some given single script, passing verbs to one script to invoke given actions.

This collects all code into a single script. Then if required, have your trigger script dispatch other scripts.

Taking this approach means you have a single dispatching script run for all triggers, which provides a common setup for adding new triggers + tends to simplify debugging over time.
If you are not on Linux you can replace the cron job by Windows task management.

Or you can use MySQL Event Scheduler fantastic to use when available on PHPMyAdmin
Thank you guys for your input into the whole process.  The developer I was working with went MIA for quite a while, and cause the whole project to lag.