How can I improve this ERD for a bakery database?

Posted on 2014-09-28
Last Modified: 2014-10-26

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.
Question by:Jose Herrera
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 40349568
Jose,  Just checking, is this a homework assignment?

Author Comment

by:Jose Herrera
ID: 40350248
It's for a class project.
LVL 47

Accepted Solution

Dale Fye (Access MVP) earned 500 total points
ID: 40350442
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.
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 40357231
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, are some of my suggestions:
1. Add the following fields  the customer table:

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.
•      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", 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?

...Without knowing *all* the aspects of this "theoretical" business, 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.


Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In earlier versions of Windows (XP and before), you could drag a database to the taskbar, where it would appear as a taskbar icon to open that database.  This article shows how to recreate this functionality in Windows 7 through 10.
Did you know that more than 4 billion data records have been recorded as lost or stolen since 2013? It was a staggering number brought to our attention during last week’s ManageEngine webinar, where attendees received a comprehensive look at the ma…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question