For 2023 - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Oops - I got my initial database design wrong
Just once in a while a question comes up on our Opentalk Forum that's so good and of such general interest that a longer answer is worthwhile. Such a question came up yesterday ... and elegantly asked and worded too, so it was a delight to read and answer.
You want a simple database application? Great - so you write the application using MySQL (or some other database) and you hold your data in a single table. Works well at first but then ... the design starts to creak at the seams. Perhaps you have a number of customers listed, and some of them make multiple purchases ... your database starts to contain a whole lot of repeated information which makes it hard to edit when someone changes their address, for example ...
[b]It's so easy to design a database in this way, but how can it be sorted out later?[/b] It's not going to be easy - but I've set down a scheme, with various options, and a piece of PHP to do the task automatically ... and you can find that in the forum archive
Beware - "normalising" your tables - changing from one table to two of more appropriate design - is likely to take you quite a while as you match up entries that aren't quite identical in their common fields but should be, and you're going to have to modify and add an element of complexity to your applications ... they'll have to update multiple tables rather than just one as data is being entered and changed, and they'll need to use MySQL Joins
to connect the tables. (written 2005-07-12, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesS154 - MySQL - Designing an SQL Database System 
MySQL - Pivot tables - (2004-09-22) 
Binary Large Objects or bars - (2005-06-27) 
MySQL - a score of things to remember - (2005-11-12) 
MySQL - an FAQ - (2005-12-03) 
Database design - get it right from first principles - (2006-04-02) 
Databases needn't be frightening, hard or expensive - (2006-11-08) 
Display an image from a MySQL database in a web page via PHP - (2006-11-22) 
Code quality counts - (2006-11-26) 
MySQL - table design and initial testing example - (2007-11-06) 
Database design for a shopping application (MySQL) - (2008-03-15) 
More HowTo diagrams - MySQL, Tomcat and Java - (2008-08-24) 
What a difference a MySQL Index made - (2009-02-25) 
MySQL - licensing issues, even with using the name - (2009-03-16) 
Images in a database? How big is a database? (MySQL) - (2009-05-28) 
Delegate Question - defining MySQL table relationships as you create the tables - (2010-05-02) 
SQL - Data v Metadata, and the various stages of data selection - (2011-04-29) 
Blowing our own trumpet - MySQL resources - (2011-07-18) 
Databases - when to treat the rules as guidelines - (2011-10-23) 
FileMaker Day to Unix Time conversion - (2015-02-15)Q916 - Object Orientation and General technical topics - Database design principles 
Giving the researcher power over database analysis - (2006-01-22)
Some other Articles
Getting the lighting rightA word of admiration for the London cabbieA Strengthened CityWhat brings people to my web site?Oops - I got my initial database design wrongInstant availabilityVik, Iceland to Melksham, EnglandTime calculation in PHPThe training team that's looking out for youFrom Iceland
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).