Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1592
  • Last Modified:

How can I improve this ERD for a bakery database?

Hi,

I am new to databases and am trying to make an Entity Relationship Diagram for a bakery. I attached what I have so far, but I know there must be a lot mistakes on it. Ultimately, the database will be created with Microsoft Access. From the database, I plan to create forms, generate reports, and do queries. What I'm not sure of, is if my ERD is organized enough that it will be able to do all of the following:

Inventory (Reports)
•      Tell how much inventory there is at a given time. Provide a running total of how much inventory is left
•      Insure that there is plenty of inventory (i.e. cake toppers for special orders) for future sales. Avoid stock-outs.
•      Baker should know which products to make the most of and which to make less of to avoid waste of inventory.
Sales (Queries & Reports)
•      Tell what items have sold and at what quantity.
•      Generate reports of most popular products and slow-sellers.
•      Owners should be able to see itemized records of daily, monthly, and yearly sales
Order Taking (Forms)
•      Orders will be assigned a unique number # for every order.
 
Also, I'm unsure of is how to do inventory of the bakery, since the process starts with ingredients then they're turned into finished goods. I wasn't sure if I should add a recipe entity.

Can someone please point out all the mistakes and tell me in which direction I should go on next? Any feedback is appreciated.

Thank You.
PracticeERD-Diagram.png
0
Jose Herrera
Asked:
Jose Herrera
  • 2
1 Solution
 
Dale FyeCommented:
Jose,  Just checking, is this a homework assignment?
0
 
Jose HerreraAuthor Commented:
It's for a class project.
0
 
Dale FyeCommented:
There are limits to what we experts are allowed to contribute in this arena.  However, we can provide some assistance.  Questions you should consider as you review your ERD.

1.  Will this be tied into a Point of Sale system?  If not, keeping track of quantity on hand will be difficult.
2.  Will prices go up and down over time for a product?
3.  What is the difference between a recipe and a product ingredient list?
4.  I don't see an OrderDetails table, and am not sure what the difference is between a MenuOrderDetails and a SpecialOrdersDetails?
5.  Does the baker need to know how much of each ingredient to purchase?  If so, how would they determine that?
6.  Does the baker need to know how much to charge for an item based on what  ingredients and quantity of those ingredients?  How many of each product are produced in a single batch?  How much did each ingredient cost for a particular purchase, by what unit?
7.  Does the baker need to keep track of employee hours, salaries, schedules, vacation time?

These are just a few of the things I thought of while looking at your ERD and considering what a bakery might need in a database.
0
 
Jeffrey CoachmanMIS LiasonCommented:
Other issues with answering "tell me whats wrong with my design" questions is the scope of the recommendations.
For example, your question title is: "How can I improve this ERD for a bakery database"
...yet some of your subsequent questions do not relate directly to the ERD:
For example:
    Generate reports of most popular products and slow-sellers.
    Owners should be able to see itemized records of daily, monthly, and yearly sales
...are, in essence, reporting aspects


To approach this from purely the standpoint of the ERD, ...here are some of my suggestions:
1. Add the following fields  the customer table:
CompanyName
Email
Fax

2. Use a consistent naming convention, for example:
All Primary keys should end with "ID"
Do not include spaces in your names.

3. To me, you may not need a separate table for "Special Orders", ...perhaps a Boolean field in the Orders table would do...:
SpecialOrder: Yes/No

4. Differentiating between entities like Products and Ingredients can become an exercise in futility if these things are not very clearly defined.
In some cases a "Product" can end up being an "ingredient" or vice versa.
For example a Bagel can be a product you make from ingredients, ...but it can also become a "ingredient" in the case of flavored bagel chips.
Or suppose that another bakery wants to buy a sack of flour(an ingredient) from you as a "product"?

5. To me a "recipe" table is not needed in this database.

6. Rename the table: Order/Purchases, to just: "Orders"

7. Rename: Product Ingredients List, to simply,: ProductIngredients

8. You seem to be missing a ProductCategory table...?


To me questions like:
•      Insure that there is plenty of inventory (i.e. cake toppers for special orders) for future sales. Avoid stock-outs.
...and:
•      Baker should know which products to make the most of and which to make less of to avoid waste of inventory.
...are managerial functions, and deal with things like maximizing output.
Maximizing output is not a simple concept, and may have to be dealt with with special formulas, functions , or algorithms.
Furthermore, in most production systems, the "employee" (Baker) is not called upon to do these calculations.
In most cases the baker is simply given a list of things to bake.
;-)
...and since no manager can predict "future sales" with 100% accuracy, having "plenty of inventory", ...is a somewhat vague requirement.... (how much is "plenty" for each product/ingredient and for what time period?)

So, as you can see,  we could spend all of this month "suggesting" improvements.

So this leads to the main problem with these purely "academic" exercises.
Is this a neighborhood bakery of a large conglomerate Bakery?
Did this assignment start with the requirements, and you created the design?
Or were you given the requirements and the design?
...etc

...Without knowing *all* the aspects of this "theoretical" business, ...it is hard to make any read, meaningful suggestions
So you may want to narrow the scope of this question so that you can get more focused recommendations.

JeffCoachman
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now