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?
* Object Oriented ProgrammingMySQL Server
Last Comment
the_b1ackfox
8/22/2022 - Mon
David Favor
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.
Dave Baldwin
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.
the_b1ackfox
ASKER
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
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
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.
lenamtl
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
the_b1ackfox
ASKER
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.
So your data will... just be data... Your code will be OOP to pack/save/retrieve/unpack/
You can also use other data forms like YAML + MySQL provides a huge amount of built in intelligence around JSON data.