aboutsummaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2007-01-16 23:39:39 +0000
committerplegall <plg@piwigo.org>2007-01-16 23:39:39 +0000
commit5d9a865fe1931869d3d9edb19f64d66783a0f4f4 (patch)
tree35805541591d81cbb9a7758ddb3e2da538a2237d /install
parent62149d74a9724bba01c5ae5b8b99fa00e0a60fe7 (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.php88
-rw-r--r--install/phpwebgallery_structure.sql74
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';
+