Damien,
1. If a column is a primary key, there is no need to declare it a unique.
2. Without foreign keys, your CREATE statements don't reveal table
relationships.
3. The best way I know to validate a schema is to (i) write or draw all the
application's use cases, (ii) from the use cases derive all the required
data items, (iii) organise these items into a structure diagram with a
modelling tool like Microsoft Visio or Dezign, (iv) have the modelling tool
generate the database, (v) populate the database with a bit of test data and
(vi) see if you can derive (with or without pseudocode) all the system's
required outputs. The crucial tests are step (iv) anf (vi).
PB
[filter fodder: mySQL]
-----
----- Original Message -----
From: Damien COLA
To: [EMAIL PROTECTED]
Sent: Sunday, March 30, 2003 9:49 AM
Subject: database design : 3 month later
Hello, I was starting a php/mysql project in december and seeked for help
on
this mailing list, it has been a great help for solving problems.
My application is a website where you can order meals from restaurants
that
are within your postcode area (UK only)
The database structure has grown up to 30 tables. My biggest project yet.
I would like to validate the database structure to SQL experts, in
particular regarding mySQL indexes that I am not sure if it'll help or
not,
as there should be lots of select query while browsing the
restaurants/menus.
And I wonder how it will manage when there'll be 1000 restaurants or more.
Here the sql dump of the main tables, please don't get scared ;-)
CREATE TABLE `tgl_address` (
`addressID` int(11) NOT NULL auto_increment,
`address` varchar(255) NOT NULL default '',
`postcode` varchar(10) NOT NULL default '',
`city` varchar(30) NOT NULL default 'London',
`website` varchar(255) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`phone` varchar(20) NOT NULL default '',
`fax` varchar(20) NOT NULL default '',
`sms` varchar(20) NOT NULL default '',
`contact` varchar(20) NOT NULL default '',
PRIMARY KEY (`addressID`),
UNIQUE KEY `addressID` (`addressID`)
) TYPE=MyISAM;
<snip>