diff options
author | plegall <plg@piwigo.org> | 2007-01-16 23:39:39 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2007-01-16 23:39:39 +0000 |
commit | 5d9a865fe1931869d3d9edb19f64d66783a0f4f4 (patch) | |
tree | 35805541591d81cbb9a7758ddb3e2da538a2237d /install | |
parent | 62149d74a9724bba01c5ae5b8b99fa00e0a60fe7 (diff) |
Modification: new data model for history, more compact, more efficient. A
summary table is used as cache for history stats display.
New: a Perl script fill_history.pl was added to simulate a high load on
history table (making the efficiency of the new data model obvious).
Modification: function prepend_append_array_items moved from
include/functions_search.inc.php to include/functions_search.inc.php since
this function is used in new file admin/history.php
Modification: admin/images/*_stats.img.php replaced by a simpler and more
generic admin/images/stats.img.php unique file.
New: a history detail search page was added. Currently, only start and end
dates can be modified, it's just a beginning.
git-svn-id: http://piwigo.org/svn/trunk@1727 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'install')
-rw-r--r-- | install/db/42-database.php | 88 | ||||
-rw-r--r-- | install/phpwebgallery_structure.sql | 74 |
2 files changed, 137 insertions, 25 deletions
diff --git a/install/db/42-database.php b/install/db/42-database.php new file mode 100644 index 000000000..5e65ba2f1 --- /dev/null +++ b/install/db/42-database.php @@ -0,0 +1,88 @@ +<?php +// +-----------------------------------------------------------------------+ +// | PhpWebGallery - a PHP based picture gallery | +// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net | +// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net | +// +-----------------------------------------------------------------------+ +// | branch : BSF (Best So Far) +// | file : $RCSfile$ +// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $ +// | last modifier : $Author: plg $ +// | revision : $Revision: 870 $ +// +-----------------------------------------------------------------------+ +// | This program is free software; you can redistribute it and/or modify | +// | it under the terms of the GNU General Public License as published by | +// | the Free Software Foundation | +// | | +// | This program is distributed in the hope that it will be useful, but | +// | WITHOUT ANY WARRANTY; without even the implied warranty of | +// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | +// | General Public License for more details. | +// | | +// | You should have received a copy of the GNU General Public License | +// | along with this program; if not, write to the Free Software | +// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, | +// | USA. | +// +-----------------------------------------------------------------------+ + +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'History table new model and new table history_summary'; + +include_once(PHPWG_ROOT_PATH.'include/constants.php'); + +// +-----------------------------------------------------------------------+ +// | Upgrade content | +// +-----------------------------------------------------------------------+ + +echo "Recreate table ".HISTORY_TABLE."\n"; + +$query = 'DROP TABLE '.HISTORY_TABLE.';'; +pwg_query($query); + +$query = " +CREATE TABLE `".HISTORY_TABLE."` ( + `id` int(10) unsigned NOT NULL auto_increment, + `date` date NOT NULL default '0000-00-00', + `time` time NOT NULL default '00:00:00', + `year` smallint(4) NOT NULL default '0', + `month` tinyint(2) NOT NULL default '0', + `day` tinyint(2) NOT NULL default '0', + `hour` tinyint(2) NOT NULL default '0', + `user_id` smallint(5) NOT NULL default '0', + `IP` varchar(15) NOT NULL default '', + `section` enum('categories','tags','search','list','favorites','most_visited','best_rated','recent_pics','recent_cats') default NULL, + `category_id` smallint(5) default NULL, + `tag_ids` varchar(50) default NULL, + `image_id` mediumint(8) default NULL, + `summarized` enum('true','false') default 'false', + PRIMARY KEY (`id`), + KEY `history_i1` (`summarized`) +) TYPE=MyISAM +;"; +pwg_query($query); + +echo "Create table ".HISTORY_SUMMARY_TABLE."\n"; +$query = " +CREATE TABLE `".HISTORY_SUMMARY_TABLE."` ( + `id` varchar(13) NOT NULL default '', + `year` smallint(4) NOT NULL default '0', + `month` tinyint(2) default NULL, + `day` tinyint(2) default NULL, + `hour` tinyint(2) default NULL, + `nb_pages` int(11) default NULL, + PRIMARY KEY (`id`) +) TYPE=MyISAM +;"; +pwg_query($query); + +echo +"\n" +.'"'.$upgrade_description.'"'.' ended' +."\n" +; + +?> diff --git a/install/phpwebgallery_structure.sql b/install/phpwebgallery_structure.sql index 628f85c38..1006bc156 100644 --- a/install/phpwebgallery_structure.sql +++ b/install/phpwebgallery_structure.sql @@ -1,4 +1,4 @@ -1-- MySQL dump 9.11 +-- MySQL dump 9.11 -- -- Host: localhost Database: pwg-bsf -- ------------------------------------------------------ @@ -112,13 +112,37 @@ CREATE TABLE `phpwebgallery_groups` ( DROP TABLE IF EXISTS `phpwebgallery_history`; CREATE TABLE `phpwebgallery_history` ( - `date` datetime NOT NULL default '0000-00-00 00:00:00', - `login` varchar(15) default NULL, - `IP` varchar(50) NOT NULL default '', - `category` varchar(150) default NULL, - `file` varchar(50) default NULL, - `picture` varchar(150) default NULL, - KEY `history_i1` (`date`) + `id` int(10) unsigned NOT NULL auto_increment, + `date` date NOT NULL default '0000-00-00', + `time` time NOT NULL default '00:00:00', + `year` smallint(4) NOT NULL default '0', + `month` tinyint(2) NOT NULL default '0', + `day` tinyint(2) NOT NULL default '0', + `hour` tinyint(2) NOT NULL default '0', + `user_id` smallint(5) NOT NULL default '0', + `IP` varchar(15) NOT NULL default '', + `section` enum('categories','tags','search','list','favorites','most_visited','best_rated','recent_pics','recent_cats') default NULL, + `category_id` smallint(5) default NULL, + `tag_ids` varchar(50) default NULL, + `image_id` mediumint(8) default NULL, + `summarized` enum('true','false') default 'false', + PRIMARY KEY (`id`), + KEY `history_i1` (`summarized`) +) TYPE=MyISAM; + +-- +-- Table structure for table `phpwebgallery_history_summary` +-- + +DROP TABLE IF EXISTS `phpwebgallery_history_summary`; +CREATE TABLE `phpwebgallery_history_summary` ( + `id` varchar(13) NOT NULL default '', + `year` smallint(4) NOT NULL default '0', + `month` tinyint(2) default NULL, + `day` tinyint(2) default NULL, + `hour` tinyint(2) default NULL, + `nb_pages` int(11) default NULL, + PRIMARY KEY (`id`) ) TYPE=MyISAM; -- @@ -298,9 +322,9 @@ CREATE TABLE `phpwebgallery_user_cache_categories` ( `user_id` smallint(5) NOT NULL default '0', `cat_id` smallint(5) unsigned NOT NULL default '0', `max_date_last` datetime default NULL, - `count_images` mediumint(8) unsigned default 0, - `count_categories` mediumint(8) unsigned default 0, - PRIMARY KEY (`user_id`, `cat_id`) + `count_images` mediumint(8) unsigned default '0', + `count_categories` mediumint(8) unsigned default '0', + PRIMARY KEY (`user_id`,`cat_id`) ) TYPE=MyISAM; -- @@ -395,23 +419,23 @@ CREATE TABLE `phpwebgallery_waiting` ( PRIMARY KEY (`id`) ) TYPE=MyISAM; --- +-- -- Table structure for table `phpwebgallery_ws_access` --- +-- -DROP TABLE IF EXISTS phpwebgallery_ws_access; -CREATE TABLE phpwebgallery_ws_access ( - id smallint(5) unsigned NOT NULL auto_increment, - name varchar(32) NOT NULL default '', - access varchar(255) default NULL, +DROP TABLE IF EXISTS `phpwebgallery_ws_access`; +CREATE TABLE `phpwebgallery_ws_access` ( + `id` smallint(5) unsigned NOT NULL auto_increment, + `name` varchar(32) NOT NULL default '', + `access` varchar(255) default NULL, `start` datetime default NULL, `end` datetime default NULL, - request varchar(255) default NULL, - high enum('true','false') NOT NULL default 'true', - normal enum('true','false') NOT NULL default 'true', + `request` varchar(255) default NULL, + `high` enum('true','false') NOT NULL default 'true', + `normal` enum('true','false') NOT NULL default 'true', `limit` smallint(5) unsigned default NULL, `comment` varchar(255) default NULL, - PRIMARY KEY (id), - UNIQUE KEY name (name) -) ENGINE=MyISAM COMMENT='Access for Web Services'; - + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) TYPE=MyISAM COMMENT='Access for Web Services'; + |