phpOpenTracker/phpOpenTracker/API/Plugin AccessStatistics.php,1.10,1.11 Top.php,1.9,1.10

Sebastian Bergmann <[email protected]> Thu, 27 May 2004 05:53:54 +0000
Newsgroups gmane.comp.web.phpopentracker.cvs
Message-ID <[email protected]>
Update of /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API/Plugin
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16214/phpOpenTracker/API/Plugin

Modified Files:
	AccessStatistics.php Top.php 
Log Message:
De-normalize database schema.

Index: AccessStatistics.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API/Plugin/AccessStatistics.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- AccessStatistics.php	19 Apr 2004 14:38:41 -0000	1.10
+++ AccessStatistics.php	27 May 2004 05:53:52 -0000	1.11
@@ -96,22 +96,22 @@
             $queryResult = $this->database->query(
               sprintf(
                 "SELECT %s AS result
-                   FROM %s accesslog,
-                        %s visitors
-                  WHERE visitors.client_id    = '%d'
-                    AND visitors.accesslog_id = accesslog.accesslog_id
+                   FROM %s page_impressions,
+                        %s visits
+                  WHERE visits.client_id = '%d'
+                    AND visits.visit_id  = page_impressions.visit_id
                         %s
                         %s",
 
-                ($parameters['api_call'] == 'page_impressions') ? 'COUNT(*)' : 'COUNT(DISTINCT(visitors.accesslog_id))',
-                $this->configuration['accesslog_table'],
-                $this->configuration['visitors_table'],
+                ($parameters['api_call'] == 'page_impressions') ? 'COUNT(*)' : 'COUNT(DISTINCT(visits.visit_id))',
+                $this->configuration['page_impressions_table'],
+                $this->configuration['visits_table'],
                 $parameters['client_id'],
                 $this->getConstraintClause($parameters['constraints']),
                 $this->getTimerangeClause(
                   $parameters['start'],
                   $parameters['end'],
-                  'accesslog'
+                  'page_impressions'
                 )
               )
             );

Index: Top.php
===================================================================
RCS file: /cvsroot/phpopencounter/phpOpenTracker/phpOpenTracker/API/Plugin/Top.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- Top.php	19 Apr 2004 14:38:41 -0000	1.9
+++ Top.php	27 May 2004 05:53:52 -0000	1.10
@@ -62,23 +62,7 @@
           );
         }
 
-        list($constraint, $selfJoin) = $this->getConstraintClause(
-          $parameters['constraints'],
-          true
-        );
-
-        if ($selfJoin) {
-          $selfJoinConstraint = 'AND accesslog.accesslog_id = accesslog2.accesslog_id';
-
-          $selfJoinTable = sprintf(
-            '%s accesslog2,',
-
-            $this->configuration['accesslog_table']
-          );
-        } else {
-          $selfJoinConstraint = '';
-          $selfJoinTable      = '';
-        }
+        $constraint = $this->getConstraintClause($parameters['constraints']);
 
         $timerange = $this->getTimerangeClause(
           $parameters['start'],
@@ -98,83 +82,69 @@
 
                 switch ($parameters['what']) {
                   case 'document': {
-                      $column    = 'accesslog.document_id';
-                      $dataTable = $this->configuration['documents_table'];
+                      $column = 'page_impressions.document';
                   }
                   break;
 
                   case 'entry_document': {
-                      $column         = 'accesslog.document_id';
-                      $dataConstraint = "AND accesslog.entry_document = '1'";
-                      $dataTable      = $this->configuration['documents_table'];
+                      $column         = 'page_impressions.document';
+                      $dataConstraint = "AND page_impressions.entry_document = '1'";
                   }
                   break;
 
                   case 'exit_document': {
-                      $column         = 'accesslog.document_id';
-                      $dataConstraint = "AND accesslog.exit_target_id <> '0'";
-                      $dataTable      = $this->configuration['documents_table'];
+                      $column         = 'page_impressions.document';
+                      $dataConstraint = "AND page_impressions.exit_target <> ''";
                   }
                   break;
 
                   case 'exit_target': {
-                      $column         = 'accesslog.exit_target_id';
-                      $dataConstraint = "AND accesslog.exit_target_id <> '0'";
-                      $dataTable      = $this->configuration['exit_targets_table'];
+                      $column         = 'page_impressions.exit_target';
+                      $dataConstraint = "AND page_impressions.exit_target <> ''";
                   }
                   break;
 
                   case 'host': {
-                      $column    = 'visitors.host_id';
-                      $dataTable = $this->configuration['hostnames_table'];
+                      $column = 'visits.host';
                   }
                   break;
 
                   case 'operating_system': {
-                      $column    = 'visitors.operating_system_id';
-                      $dataTable = $this->configuration['operating_systems_table'];
+                      $column = 'visits.operating_system';
                   }
                   break;
 
                   case 'referer': {
-                      $column    = 'visitors.referer_id';
-                      $dataTable = $this->configuration['referers_table'];
+                      $column = 'visits.referer';
                   }
                   break;
 
                   case 'user_agent': {
-                      $column    = 'visitors.user_agent_id';
-                      $dataTable = $this->configuration['user_agents_table'];
+                      $column = 'visits.user_agent';
                   }
                   break;
               }
 
               $nestedQuery = sprintf(
-                "SELECT data_table.string AS item
-                   FROM %s accesslog,
-                        %s
+                "SELECT %s AS item
+                   FROM %s page_impressions,
                         %s visitors,
-                        %s data_table
-                  WHERE visitors.client_id    = '%d'
-                    AND visitors.accesslog_id = accesslog.accesslog_id
-                    AND data_table.data_id    = %s
-                        %s
+                  WHERE visits.client_id = '%d'
+                    AND visits.visit_id  = page_impressions.visit_id
                         %s
                         %s
                         %s
-                  GROUP BY visitors.accesslog_id,
-                           data_table.string",
+                  GROUP BY visits.visit_id,
+                           %s",
 
-                $this->configuration['accesslog_table'],
-                $selfJoinTable,
-                $this->configuration['visitors_table'],
-                $dataTable,
-                $parameters['client_id'],
                 $column,
-                $selfJoinConstraint,
+                $this->configuration['page_impressions_table'],
+                $this->configuration['visits_table'],
+                $parameters['client_id'],
                 $dataConstraint,
                 $constraint,
-                $timerange
+                $timerange,
+                $column
               );
             }
             break;
@@ -182,27 +152,23 @@
             default: {
                 $nestedQuery = sprintf(
                   "SELECT add_data.data_value AS item
-                     FROM %s accesslog,
-                          %s
+                     FROM %s page_impressions,
                           %s visitors,
                           %s add_data
-                    WHERE visitors.client_id     = '%d'
-                      AND visitors.accesslog_id  = accesslog.accesslog_id
-                      AND accesslog.accesslog_id = add_data.accesslog_id
-                      AND add_data.data_field    = '%s'
-                          %s
+                    WHERE visits.client_id          = '%d'
+                      AND visits.visit_id           = page_impressions.visit_id
+                      AND page_impressions.visit_id = add_data.visit_id
+                      AND add_data.data_field       = '%s'
                           %s
                           %s
-                    GROUP BY visitors.accesslog_id,
+                    GROUP BY visits.visit_id,
                              add_data.data_value",
 
-                  $this->configuration['accesslog_table'],
-                  $selfJoinTable,
-                  $this->configuration['visitors_table'],
+                  $this->configuration['page_impressions_table'],
+                  $this->configuration['visits_table'],
                   $this->configuration['additional_data_table'],
                   $parameters['client_id'],
                   $parameters['what'],
-                  $selfJoinConstraint,
                   $constraint,
                   $timerange
                 );



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click