La table et le code sont-ils conforment

Répondre
jackbocar
le 14/03/2009 à 09:16
jackbocar
Bonjour

A savoir que j'ai 28 rubriques, donc 28 entrées différentes dans cette table :

Les termes utilisés dans cette table count_home ou count_temple etc., Sont-ils réglementaires ?

Peut-ont les remplacer par un autre terme ?

Cette table et le code sont-ils fiables ou y a-t-il une autre façon plus académique de faire ?

Puis-je me servir sans problème de cette table avec les 28 champs count_XXXX et le code en modèle pour chaque rubrique ?

Faut-il plutôt créer 28 tables pour une plus grande et plus sur efficacité ?

Merci de vos réponses et de vos propositions.



CREATE TABLE IF NOT EXISTS `counters` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`count_home` char(20) NOT NULL,
`count_commanderies` char(20) NOT NULL,
`count_temple` char(20) NOT NULL,
`count_saint_bernard` char(20) NOT NULL,
`count_accusateurs` char(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Contenu de la table `counters`
--

INSERT INTO `counters` (`id`, `count_home`, `count_commanderies`, `count_temple`, `count_saint_bernard`, `count_accusateurs`) VALUES
(1, '290', '125', '236', '157', '788');

<?php
require ('class_db.php');
$result = DB::getInstance()->query("UPDATE counters SET count_home = count_home + 1");
$result = DB::getInstance()->query("SELECT count_home FROM counters");
foreach($result as $row)
{
print '<span class="visites">La home page du site &agrave; &eacute;t&eacute; visit&eacute;e <em class="bold">'.$row['count_home'].'</em> fois </span>';
}
?>


Jack Bocar
LA GLOBULE
le 14/03/2009 à 11:53
LA GLOBULE
Ton modèle a un problème, c'est que si tu dois ajouter une rubrique, et bien tu dois rajouter un champs, ce qui n'est pas pratique.

Personnellement, je ferais une table à 3 colonnes : id, nom, count et qui aurait donc 28 entrées.
jackbocar
le 14/03/2009 à 15:42
jackbocar
Merci de ta réponse,

Je ne comprends pas comment dois-je faire pour savoir dans chaque rubrique combien de pages ont été vues, si j’ai une table avec une ID le nom des rubriques et count, comment savoir combien de pages vues dans telle ou telle rubrique ?

Je pense que dans ta réflexion c’est pour une seule table et une seule rubrique.


Ou alors comme celle-ci ?

CREATE TABLE IF NOT EXISTS `counters` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`home` varchar(100) NOT NULL,
`count_1` char(20) NOT NULL,
`fondation` varchar(100) NOT NULL,
`count_2` char(20) NOT NULL,
`ordre_temple` varchar(100) NOT NULL,
`count_3` char(20) NOT NULL,
Etc.

Merci de préciser ta pensé.

Jack Bocar
LA GLOBULE
le 14/03/2009 à 17:46
LA GLOBULE
Ben pour connaitre le nombre de pages vues, tu fais un SELCT count FROM table WHERE id=3

Après, si tu as des sous rubriques, tu peux créer une table de sous rubriques.

Et si tu as une infinité de niveau de sous rubriques possible, il te suffit de faire une table unique avec un champ parent_id qui te donne l'id de la catégorie mère.

Mais sinon, si c'est juste pour faire des statistiques de visites, un simple analyseur de log type awstats est suffisant.
jackbocar
le 14/03/2009 à 18:15
jackbocar
Bonjour,

Ca m’intéresse le champ ID_PARENT,
Peux-tu me faire un exemple sur 3 champs, je ne sais pas comment construire cette table.

Je connais le script awstats, il est assez compliqué et est de 1, 25 M°.

J’ai essayé ceci, pas très simple à faire, mais avec les commentaires, j’arrive à voir toutes mes rubriques.


DROP TABLE IF EXISTS `compteurs`;
CREATE TABLE IF NOT EXISTS `compteurs` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`count_1` char(20) NOT NULL COMMENT 'Home',
`count_2` char(20) NOT NULL COMMENT 'Fondation',
`count_3` char(20) NOT NULL COMMENT 'Ordre du Temple',
`count_4` char(20) NOT NULL COMMENT 'Grands Maitres',
`count_5` char(20) NOT NULL COMMENT 'Saint-Bernard',
`count_6` char(20) NOT NULL COMMENT 'Regle',
`count_7` char(20) NOT NULL COMMENT 'Accusateurs',
`count_8` char(20) NOT NULL COMMENT 'Proces',
`count_9` char(20) NOT NULL COMMENT 'Commanderies',
`count_10` char(20) NOT NULL COMMENT 'Symbolique',
`count_11` char(20) NOT NULL COMMENT 'Orient Latin',
`count_12` char(20) NOT NULL COMMENT 'Francois Michaud',
`count_13` char(20) NOT NULL COMMENT 'Saladin',
`count_14` char(20) NOT NULL COMMENT 'Liens',
`count_15` char(20) NOT NULL COMMENT 'Librairie',
`count_16` char(20) NOT NULL COMMENT 'Prieure de France',
`count_17` char(20) NOT NULL COMMENT 'Grands Prieures',
`count_18` char(20) NOT NULL COMMENT 'Cartulaire du Temple',
`count_19` char(20) NOT NULL COMMENT 'Les Cartulaires',
`count_20` char(20) NOT NULL COMMENT 'Les Chartes',
`count_21` char(20) NOT NULL COMMENT 'Orbituaire de Reims',
`count_22` char(20) NOT NULL COMMENT 'Trudon des Ormes',
`count_23` char(20) NOT NULL COMMENT 'Leopold Delisle',
`count_24` char(20) NOT NULL COMMENT 'Auguste Petel',
`count_25` char(20) NOT NULL COMMENT 'Freres Perigord',
`count_26` char(20) NOT NULL COMMENT 'Jules Michelet',
`count_27` char(20) NOT NULL COMMENT 'Personnages Croisades',
`count_28` char(20) NOT NULL COMMENT 'Etudes Templieres',
`count_29` char(20) NOT NULL COMMENT 'Bibliographie',
`count_30` char(20) NOT NULL COMMENT 'Foulcher de Chartres',
`count_31` char(20) NOT NULL COMMENT 'Hospitaliers Saint-Jean',
`count` char(50) NOT NULL COMMENT 'Compte General',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
jackbocar
le 14/03/2009 à 18:24
jackbocar
J'ai oublié ceci :

<?php
try {
$result = DB::getInstance()->query("UPDATE counters SET count_1=count_1 + 1");// Incrément le total des pages vues dans la rubrique

$result = DB::getInstance()->query("UPDATE counters SET count=count + 1");// Incrément automatiquement le total général de toutes les pages vues

$result = DB::getInstance()->query("SELECT count_1 FROM counters");// Affiche le nombre de fois que la page a été vue

foreach($result as $row)
{
print '<span class="visites">La home page du site &agrave; &eacute;t&eacute; visit&eacute;e <em class="bold">'.$row['count_1'].'</em> fois </span>';
}
NULL;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
LA GLOBULE
le 14/03/2009 à 18:47
LA GLOBULE
Pourquoi t'obstines tu à faire un truc qui ne scale pas ?

Si tu veux mon avis, abandonne le nombre de champs variable (un champ par rubrique).

Pour la table avec le parent_id, ben c'est une table avec 4 champs : id, parent_id, nom_rubrique, count.
Par defaut (catégorie mère), le parent_id vaut 0, et sinon, il vaut l'id de la catégorie à laquelle se rapport ta "sous catégorie".
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours