HomeMySQL Page 6 - Online Photo Album Development using PHP and GD: Part 1
Conclusion - MySQL
This article is the first part of a four part series about saving money and space when it comes to showing off your pictures. Frank will be using PHP, MySQL and GD in this series.
We need to create our database structure. We have many options available to us regarding how we want our images to be organized. I've chosen to go with creating multiple albums, containing multiple images. This will allow for a well-organized gallery, in that we can group related albums together.
Our database structure will contain the following tables:
Table Name: album
Table Name: photo
We'll now create our tables using MySQL:
CREATE TABLE album ( album_id int(11) NOT NULL auto_increment, album_name varchar(255) NOT NULL default '', album_desc text NOT NULL, album_cover varchar(255) NOT NULL default '', PRIMARY KEY (album_id), KEY album_name (album_name) ) TYPE=MyISAM;
CREATE TABLE photo ( photo_id int(11) NOT NULL auto_increment, photo_title varchar(255) NOT NULL default '', photo_desc text NOT NULL, photo_date datetime NOT NULL default '0000-00-00 00:00:00', photo_location varchar(255) NOT NULL default '', thumbnail_location varchar(255) NOT NULL default '', album_id int(11) NOT NULL default '0', PRIMARY KEY (photo_id), KEY photo_title (photo_title), ) TYPE=MyISAM;
An example INSERT query may be something like the following:
INSERT INTO album VALUES(0, 'Frank's Birthday', 'May contain incriminating photos! :)', 'thumbs/at_the_bar_080103_180743');
INSERT INTO photo VALUES(0, '1st Drink of Many', 'A Drink with Friends!', '2003-08-03 18:07:43', 'photos/ at_the_bar_080103_180743', 'thumbs/ at_the_bar_080103_180743'', 1);
Now that our tables have been created, we can worry about the structure of our "back-end interface", which will allow us to upload our images into the chosen album(s).