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
  • 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

VMware Disaster Recovery and Data Protection

In this expert guide, you’ll learn about the components of a Modern Data Center. You will use cases for the value-added capabilities of Veeam®, including combining backup and replication for VMware disaster recovery and using replication for data center migration.

Question has a verified solution.

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

This article explains all about SQL Server Piecemeal Restore with examples in step by step manner.
As tax season makes its return, so does the increase in cyber crime and tax refund phishing that comes with it
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

775 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