I'm setting up a database for a new project and I keep wavering on one aspect of
the design. The end result is to be a searchable menu for a restaurant's
website and I cannot decide if it is best to simply use one table for all menu
items (food) or use tables for each category (pasta, appetizers, etc). I
currently
have a table listing said categories (categories) but I simply can't decide
which
is better for this application. Thank you all for your advice.
Below is some info from MySQL regaring the current design of the DB.
SHOW TABLES;
+---------------+
| Tables_in_tga |
+---------------+
| categories |
| drinks |
| food |
| specials |
+---------------+
DESCRIBE categories;
+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| cat_id | tinyint(3) unsigned | | PRI | NULL | auto_increment |
| cat_name | char(100) | | UNI | | |
+-----------+---------------------+------+-----+---------+----------------+
DESCRIBE food;
+------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+----------------+
| item_id | tinyint(3) unsigned | | PRI | NULL | auto_increment |
| cat_id | tinyint(3) unsigned | | | 0 | |
| item_name | char(50) | | | | |
| item_desc | char(255) | | | | |
| item_price | float(5,2) | | | 0.00 | |
+------------+---------------------+------+-----+---------+----------------+
Thanks again.
Edward Dudlik
Becoming Digital
www.becomingdigital.com
> I'm setting up a database for a new project and I keep wavering on one aspect
> of
> the design. The end result is to be a searchable menu for a restaurant's
> website and I cannot decide if it is best to simply use one table for all menu
> items (food) or use tables for each category (pasta, appetizers, etc). I
> currently
> have a table listing said categories (categories) but I simply can't decide
> which
> is better for this application. Thank you all for your advice.
http://www.databasejournal.com/sqletc/article.php/26861_1474411_1
It should be very obvious what structure you need once reading this..
--
Mike Karthauser
Managing Director - Brightstorm Ltd
Email >> mi...@brightstorm.co.uk
Web >> http://www.brightstorm.co.uk
Tel >> 0117 9426653 (office)
07939 252144 (mobile)
Snailmail >> Unit 8, 14 King Square,
Bristol BS2 8JJ
This isn't just a question of database design, but think how much the code
is simplified.
Cheers - Miles
>--
>PHP Database Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
Edward Dudlik
Becoming Digital
www.becomingdigital.com
Ordinarily, I would go this route, but the specials are not normal menu items
and as such should not otherwise be displayed. Given that the specials are to
be updated daily as well, I thought it best to devote a table to them.
> I'd bet you could even include drinks in the "foods" table.
Another aspect I'd considered. However, the drink menu is extensive and there
is a section of the site devoted to the restaurant's bar, so again, I thought
another table was warranted.
Your further comments are welcome.
Edward Dudlik
Becoming Digital
www.becomingdigital.com
----- Original Message -----
From: "Miles Thompson" <milest...@ns.sympatico.ca>
To: "Becoming Digital" <su...@becomingdigital.com>; "PHP-DB"
<php...@lists.php.net>
Sent: Tuesday, 13 May, 2003 14:07
Subject: Re: [PHP-DB] Database Design Advice
Don't confuse display with data - everything, whether it be drink, entree,
appetizer or dessert is a "menu_item". Fetch menu_items for display (or
select lists) according to different criteria.
Hope this clarifies it - Miles
Agreed, but the issue here is the quantity of specials. This particular client
has nearly a dozen specials updated daily, all of which then need to be broken
down into lunch, dinner, and dessert subcategories.
Thinking about it further, I could add a category "special" to my categories
table and include a date column in the "food" table. This resolves everything
but the sub-specials issue, but all that's required there is a bit of further
manipulation to the setup.
Thanks, I think I've learned something. :)