IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Votre avis sur une méthode


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut [Conception] Votre avis sur une méthode
    Bonjour
    J'utilise une méthode que je n'ai pas vu ailleurs, donc je me demande si je fais bien...
    J'ai un champ mysql qui doit contenir plusieurs données, que je dois manipuler (ajouter, insérer, supprimer etc)
    Après m'être pris la tête sur la façon de m'y prendre, j'ai décidé de séparer chaque donnée avec un caractère spécial (genre le | ou la , ), de récupérer cette chaîne de caractère, et de la tranformer en tableau avec explode.
    Après je peux bidouiller ce tableau, le retranformer avec implode, et réécrire le champ mysql.

    Mais ça me semble un peu bidouille comme méthode.
    Y'a t'il pas mieux à faire?

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Suivant la nature des données et du format dans lequel elles sont stockées vous pourrez simplifier votre code en utilisant directement dans les requêtes les fonctions MySQL.

    Si c'est une relation *,n => *,n, vous ne pouvez pas gérer cela avec une nouvelle table ?

    Vous devriez lire cette discussion.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Je ne connais pas bien les fonctions "avancées" de mysql, il faudra que je m'y penche. D'ailleurs la discussion citée m'aide bien, merci

    La plupart des cas, il s'agit de série de nombres (index): 125,853,1621,184 etc...
    Je vois pas très bien en quoi une nouvelle table peut m'aider

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par AIexis
    Je ne connais pas bien les fonctions "avancées" de mysql, il faudra que je m'y penche.
    http://dev.mysql.com/doc/refman/5.0/fr/functions.html à bookmarker

    Citation Envoyé par AIexis
    Je vois pas très bien en quoi une nouvelle table peut m'aider
    C'est la réponse que vous donnerait un travail de modélisation (Modèle E/A)

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Citation Envoyé par AIexis
    La plupart des cas, il s'agit de série de nombres (index): 125,853,1621,184 etc...
    Je vois pas très bien en quoi une nouvelle table peut m'aider
    Si ces index sont des références sur une autre table, ta relation est ce qu'on appelle généralement une relation N-N : Chaque "A" possède N éléments "B", et chacun de ces éléments "B" peut être utilisé dans plusieurs "A". On utilise alors une table de jointure
    Je suis sur que tu trouveras des tonnes d'articles passionnant à ce sujet, notamment dans la partie SQL de développez.com
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Je souscrit aux précédents, si tu as plusieurs données dans un champs, c'est peut être un problème de conception. La méthodologie qui peut te permettre d'y voir plus clair passe par un MCD. Y'a quelques cours de Merise (la méthode) qui peut bien aider...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Est-il donc si inhabituel qu'un champ contienne plusieurs valeurs?

    Merise... faut pas m'en parler, j'en fais encore des cauchemars

    Merci à tous d'avoir pris le temps de répondre... je crois que j'aurai pas le courage de chercher à faire mieux que ce que j'ai fais, puisque vos solutions me semblent vraiment trop compliqué pour ma 'tit tête

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Points : 392
    Points
    392
    Par défaut
    Désolé pour le cauchemar
    Pour des problèmes simples on peut quand même se passer de MCD.
    Mais c'est vrai, tu peux faire un traitement de chaine avec séparateur (du csv en fait), mais tu demandais une méthode plus rigoureuse?
    En fait il faut te poser des questions comme si le nombre d'index est constant (le nombre de chiffre dans une cellule), si leurs ordre à de l'importance, s'il doit exister des valeurs NULL d'index, si cela sera toujours des nombres... C'est la nature même de la donnée (ta suite de chiffre) qui va orienter ton schéma de base et aussi la relation que ces données entretiennent avec les autres tables.
    Par exemple si ces listes doivent être unique ou au contraire identiques, s'il existe plusieurs listes d'index pour une donnée de table externe...
    Peut être cette fois code comme tu veux, mais la démarche de reflexion en amont du codage est vraiment importante sinon la plus importante.
    Bon code

Discussions similaires

  1. [Sequoia] Votre avis sur la Méthode
    Par Zorro dans le forum Autres
    Réponses: 5
    Dernier message: 21/05/2008, 16h02
  2. Votre avis sur une proposition de job
    Par plex dans le forum Emploi
    Réponses: 7
    Dernier message: 18/01/2007, 10h11
  3. [Programmation distribuée] Votre avis sur une archi
    Par Acarp47 dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 7
    Dernier message: 29/06/2005, 14h01
  4. Votre avis sur une bannière animée developpez.com
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 14
    Dernier message: 02/02/2005, 07h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo