|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 101 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 101 ![]() |
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 |
|
|
00
|
|
|
#4 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
http://dev.mysql.com/doc/refman/5.0/fr/functions.html à bookmarker Citation:
|
||
|
|
00
|
|
|
#5 | |
|
Membre chevronné
![]() Inscription : mai 2005 Messages : 657 ![]() |
Citation:
Je suis sur que tu trouveras des tonnes d'articles passionnant à ce sujet, notamment dans la partie SQL de développez.com |
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : juillet 2003 Messages : 338 ![]() |
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...
|
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 101 ![]() |
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 |
|
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Inscription : juillet 2003 Messages : 338 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com