Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 10/05/2011, 10h27   #1
Membre à l'essai
 
aaa mmm
Inscription : février 2010
Messages : 46
Détails du profil
Informations personnelles :
Nom : aaa mmm

Informations forums :
Inscription : février 2010
Messages : 46
Points : 22
Points : 22
Par défaut Associer plusieurs valeurs pour la même colonne

Bonjour


Je travaille avec MySQL, EasyPHP et VB 6.
J'ai deux tables dans ma base :
  • produits (ref_pdt, designation, ref_MP)
  • matiére premiere (ref_MP, designation...)
Un produit est composé de plusieurs matières premières, donc comment je peux attribuer plusieurs valeurs de matière première pour un seul produit ?

Merci d'avance.
magiabd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 10h41   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 718
Points : 8 718
Bonjour,

Citation:
multivaleur pour le même champs
Dans une base de données relationnelle SQL :
- on ne stocke qu'une seule valeur dans une colonne
- il n'y a pas de champ, mais des colonnes

Citation:
je travaille avec mysql
C'est le forum SQL Server, mais on peut quand même répondre à votre question

Citation:
c que un produits est composé de plusieurs matiere premiere,donc comment je peux attribuer plusieurs valeurs de matiere premiere pour un seul pdt?
Vous pouvez supprimer la colonne ref_MP de la table produit.
Créer ensuite une table produit_matiere_premiere (ref_pdt, ref_MP), avec une ligne de matière première pour chaque matière première composant votre produit.

La définition d'une telle table sous SQL Server serait :

Code :
1
2
3
4
5
6
7
CREATE TABLE produit_matiere_premiere
(
	produit_matiere_premiere_id int identity NOT NULL CONSTRAINT PKproduit_matiere_premiere PRIMARY KEY
	, ref_pdt int NOT NULL CONSTRAINT FKproduit_matiere_premiere__ref_pdt FOREIGN KEY (ref_pdt) REFERENCES dbo.produit
	, ref_MP int NOT NULL CONSTRAINT FKproduit_matiere_premiere__ref_MP FOREIGN KEY (ref_MP) REFERENCES dbo.matiere_premiere
	, CONSTRAINT UQproduit_matiere_premiere__ref_pdt__ref_MP UNIQUE (ref_pdt, ref_MP)
)
Vous pourrez éventuellement ajouter d'autres caractéristiques comme par exemple la quantité à cette table, pour spécifier quelle quantité de matière première est requise pour fabriquer un produit.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h04   #3
Membre à l'essai
 
aaa mmm
Inscription : février 2010
Messages : 46
Détails du profil
Informations personnelles :
Nom : aaa mmm

Informations forums :
Inscription : février 2010
Messages : 46
Points : 22
Points : 22
Merci bien pour la réponse.
Peut-on avoir deux produits différents possédant la meme matière première ?

Merci encore.
magiabd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h12   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 718
Points : 8 718
Héhé oui :

- un produit peut être composé d'une ou plusieurs matières premières.
- une matière première peut participer à la composition de plusieurs produits.

C'est donc une relation n..n, donc vous devez externaliser les attributs des entités produit et matière première dans la relation.

Le modèle physique en résultant est une table comme celle que je vous ai proposé

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h18   #5
Membre à l'essai
 
aaa mmm
Inscription : février 2010
Messages : 46
Détails du profil
Informations personnelles :
Nom : aaa mmm

Informations forums :
Inscription : février 2010
Messages : 46
Points : 22
Points : 22
merci infiniment ;je suis débutante dans le domaine et je trouve que c'est difficile!!!!!! mais je dois réussir.
encore merci
magiabd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h31   #6
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 668
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 668
Points : 8 718
Points : 8 718
Le site de SQLPro est là pour vous aider ... et nous aussi

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h52   #7
Membre à l'essai
 
aaa mmm
Inscription : février 2010
Messages : 46
Détails du profil
Informations personnelles :
Nom : aaa mmm

Informations forums :
Inscription : février 2010
Messages : 46
Points : 22
Points : 22
merci bien
magiabd 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 11h13.


 
 
 
 
Partenaires

Hébergement Web