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

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

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


Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
It’s been over a month into 2017, and there is already a sophisticated Gmail phishing email making it rounds. New techniques and tactics, have given hackers a way to authentically impersonate your contacts.How it Works The attack works by targeti…
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.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

861 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