Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
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 17/02/2011, 11h41   #1
Membre émérite
 
Avatar de gretch
 
Homme
Administrateur systèmes et réseaux
Inscription : avril 2006
Messages : 969
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : avril 2006
Messages : 969
Points : 966
Points : 966
Par défaut incrementation d'une valeur type (1,2,4,8,16 .etc), faire une somme puis "décoder" la somme

Bonjour à tous,

j'ai :

une table catégorie
| idcat | nomcat | parentcat |

une table procedure
| idproc | listidcat | titreproc | contenu | date |

je suis en train de crée une knowledge base en style wiki avec un référencement par tag (categorie), chaque procedure est rattaché à un nombre n de catégories,

je voudrais connaitre le moyen le plus simple de stocker les catégories rattacher (dans le champs listcat )à une procédure puis de les retrouver quant j'ai besoin de les requêter

je pensais sinon à une solution utilisant une logique binaire en ajoutant un champs "valeurbinaire" dans ma table categorie :

catégorie 1 = 1
catégorie 2 = 2
catégorie 3 = 4
catégorie 4 = 8

puis de stocké un cumul de cette valeur ce qui donnerais une valeur unique pour chaque combinaison de categorie.

mais je dois avoué ne pas savoir comment m'y prendre pour incrémenter cette valeur lors de la création d'une catégorie,

Citation:
Envoyé par mes modifs
j'ai trouvé :
SELECT valbin FROM procedure ORDER BY valbin DESC LIMIT 1;
mais comment "décoder" ma "valeur réponse" genre :

Code :
1
2
3 == categorie 1+categorie 2
5 == categorie 1+categorie 3
voila ou j'en suis (dsl si c'est pas claire) ^^
merci d'avance pour votre aide
__________________
un ptit jeu sympa
gretch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 08h15   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 993
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 993
Points : 18 243
Points : 18 243
Envoyer un message via MSN à CinePhil
Citation:
une table procedure
| idproc | listidcat | titreproc | contenu | date |

chaque procedure est rattaché à un nombre n de catégories,
Ceci semble signifier que la colonne listidcat peut contenir plusieurs catégories pour une procédure ?

C'est une erreur de modélisation qui vous conduit aujourd'hui à vous torturer le cerveau pour traiter cette liste de catégories !

Reprenons la dernière phrase que j'ai citée et qui est la moitié d'une règle de gestion des données :
Citation:
chaque procedure est rattaché à un nombre n de catégories
La règle complète est :
" Une procédure est rattachée à une à plusieurs catégories et une catégorie peut se voir rattacher plusieurs procédures. "

De cette règle de gestion, on tire le Modèle Conceptuel de Données (MCD, de la méthode Merise) suivant :
Procedure -1,n----Rattacher----0,n- Categorie

Et ce MCD entraîne la création d'une table associative :
procedure (idproc, titreproc, contenuproc, dateproc)
categorie (idcat, nomcat, parentcat)
rattachement (idproc, idcat)

Remarque :
J'ai changé le nom de la colonne "date" en "dateproc" car "date" est un mot réservé du langage SQL et il ne faut pas appeler un objet de la base de données de l'un de ces mots.

Les identifiants des tables "procedure" et "categorie" seront de type entier auto-incrémenté. Les deux colonnes formant la clé primaire de la table associative "rattachement" seront de type entier et feront bien sûr référence aux identifiants des deux autres tables.

J'espère qu'il n'est pas trop tard pour mettre ce modèle en place.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 11h32   #3
Membre émérite
 
Avatar de gretch
 
Homme
Administrateur systèmes et réseaux
Inscription : avril 2006
Messages : 969
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : avril 2006
Messages : 969
Points : 966
Points : 966
Yeh ! On viens de me donner la même réponse en bien moins complète, je venais l'inscrire mais la tienne est juste parfaite ^^

Citation:
J'espère qu'il n'est pas trop tard pour mettre ce modèle en place.
non pas de prob ^^

Citation:
car "date" est un mot réservé du langage SQL
Merci bcp

juste perfect
__________________
un ptit jeu sympa
gretch 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 12h12.


 
 
 
 
Partenaires

Hébergement Web