Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2006, 12h05   #1
Futur Membre du Club
 
Inscription : février 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 37
Points : 15
Points : 15
Par défaut [Conception] Question: Gestion Incrementation via SQL ou VIA Code PHP ???

Ba voila,

Je suis en phase de conception,
et je me pause la question si je dois pas realiser une table 'CATEGORIES'
qui prend en compte les enregistrements des tables et donc de gerer moi meme l'incrementation des enregistrement direct dans une CLASSE dediée.

Ou alors je defini direct en BDD un " auto_increment " sur mes ID.

J'espere que ce n'est pas une question inutile... car pour moi elle ne l'est pas.

Jvous remercie de me repondre d'avance :)

Ronio
ronio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 12h07   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Pour moi, la question ne se pose pas : je laisse le SGBD gérer tout ce qu'il peut de manière automatique.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h15   #3
Futur Membre du Club
 
Inscription : février 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 37
Points : 15
Points : 15
mais alors le system de gestion qui permet de le faire via classe.

Il servirai plutot pour statistiques etc.. non ?
ronio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h19   #4
Membre confirmé
 
Avatar de Wormus
 
Inscription : septembre 2005
Messages : 259
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 259
Points : 207
Points : 207
Moi je vote pour le auto_increment

Premièrement le SGBD est plus apte à gérer ça, j'entend par là que si l'auto_increment existe il vaut mieux l'utiliser plutot que de faire son propre système qui va surment te faire perdre un peu de temps à la conception (dépend de ton système) et en plus risque d'erreur (que l'on ne voit pas forcément au premier abord mais qd on utilise vraiment le produit et là c très embétant)

Deuxièmement je pense que le SGBD gère ça extrèmement plus rapidement !! maintenant c une histoire de centième de seconde ^^

Bien sur tout ce que je te dis est très relatif suivant ce que tu souhaite faire

Maintenant ya peut être un intérêt pour toi de le faire dans ta classe ??? je connais pas assez ton projet pour t'en dire plus
__________________
Bankaï !!
Wormus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h43   #5
Futur Membre du Club
 
Inscription : février 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 37
Points : 15
Points : 15
Je pense avoir trouvé une bonne solution avec PEAR :)


Introduction - Séquences
Introduction - Séquences -- Séquences et auto-incrémentation
Description

Les séquences sont une façon d'offrir des identifiants uniques pour les enregistrements. Si vous travaillez principalement avec MySQL, pensez que les séquences sont une autre façon de réaliser la tâche d'AUTO_INCREMENT.

C'est relativement simple, d'abord vous demandez un identifiant et vous insérez sa valeur dans le champ ID du nouvel enregistrement que vous créez. Vous pouvez avoir plus d'une séquence pour toutes vos tables, soyez juste sûrs de toujours utiliser la même séquence pour une table donnée. Pour obtenir la valeur de l'identifiant unique utilisez nextId(), si une séquence n'existe pas elle sera créée automatiquement.

Code :
1
2
3
4
5
6
7
8
9
10
Exemple 26-1. Utiliser une séquence
<?php
// On suppose que vous avec un objet DB valide nomm&eacute; $db
$id = $db->nextId('mySequence');
if (DB::isError($id)) {
    die($id->getMessage());
}
// Utilisez l'identifiant dans votre requete
$res =& $db->query("INSERT INTO myTable (id, text) VALUES ($id, 'foo')");
?>
Note

Si vous avez besoin d'accéder manuellement aux objets base de données que PEAR DB utilise pour stocker les informations d'une séquence, sachez que les objets sont nommés en passant l'argument $seq_name que vous fournissez aux méthode de séquences PEAR DB via la fonction PHP sprintf() en utilisant la valeur de l'option seqname_format en tant qu'argument de format de sprintf().

Le seqname_format par défaut est %s_seq, qui peut être changé lors de la connexion avec connect() ou via setOption().
ronio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h45   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
C'est vrai que tu ne donnes pas bcp d'infos, mais à priori tu devrais laisser faire ta BdD autrement tu risques d'avoir des problèmes de concurrence et des collisions d'ID.
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h47   #7
Futur Membre du Club
 
Inscription : février 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 37
Points : 15
Points : 15
Ben avec les sequences de la librairie PEAR, jpeux gerer cela non ?
ronio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h54   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
Citation:
Envoyé par ronio
Ben avec les sequences de la librairie PEAR
Tu parles de cela http://pear.php.net/manual/en/package.database.db.db-common.nextid.php ?

Citation:
jpeux gerer cela non ?
J'ai consulté la source PEAR, on dirait que la lib crée une table par séquence pour gérer le truc. Ça me semble bien lourd...
Franchement, quel est l'intérêt de la chose ? Si ton SGBD gère l'AUTO_INCREMENT en natif autant en profiter, ce sera toujours plus rapide et surtout plus sûr. Et ce dernier point est très important dans ce domaine, la moindre erreur peut complètement fausser ta BdD.
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2006, 13h59   #9
Futur Membre du Club
 
Inscription : février 2004
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 37
Points : 15
Points : 15
Ok Seb ^^

En effet ct le bon lien que tu as mis.

Et oui en natif c bcp mieux. Jvé moins me prendre la tete. :)

En tout cas jregrette pas d'avoir pausé ma question hein ? ^^

+++ all
ronio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h25.


 
 
 
 
Partenaires

Hébergement Web