Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1667 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Clés

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Clés

n°365020
toutoun88
Posté le 17-04-2003 à 15:10:27  profilanswer
 

Bonjour a tous,
voila, ça va certainement vous paraitre une question bete, mais j'ai besoin d'une reponse:
Voila, j'ai deux table, une produit, et l'autre conditionnements. La premiere repertorie plusieurs produits, et l'autre repertorie les differents conditionnement(quantité...) de ces produits. Mes dans ce cas, les clés primaires de mes tables sont les mêmes, le numero du produit. Ai-je le droit d'utiliser la même clé primaire pour deux tables differents ou dois-je en mettre une en clé secondaire?
 
Merci de votre reponse.

mood
Publicité
Posté le 17-04-2003 à 15:10:27  profilanswer
 

n°365157
vttman2
Je suis Open ...
Posté le 17-04-2003 à 16:26:29  profilanswer
 

Proposition ...
 
produit
id_prod prod
------------
11 pomme
12 poire
 
conditionnement
id_cond cond
------------
1 Bac
2 Plateau
3 Sachet
 
config_dispo
-------------
id_prod id_cond qté
11      1       20
11      2       100  
11      3       10
12      2       90
 
 
 
 
   
 
 

n°365191
toutoun88
Posté le 17-04-2003 à 16:48:17  profilanswer
 

@vttman2
 
Ton idée est pas mal, mais pas tout a fais juste pour mon cas. J'explique un peu plus precisement.
 
C'est une base de donnée qui contient des produits chimiques.  
Je dois faire deux tables (pour l'instant), une premiere contenant les données specifiques au produit (Cas_number (reference internationnale du produit), formule_chimique, masse_moleculaire...) et une autre contenant tous les conditionnements fournisseurs (Cas_number, fournisseur, quantité_pack1, prix_pack1...), en fait ce qu'on appelle conditionnements, c'est les differentes quantités et prix pour un même produit. Donc je ne peux pas faire comme tu dit, car les conditionnements ne sont pas les mêmes chaque produit.
 
Apres, par je dois faire une application. Quand je rentrerai un nom de produit, il va me chercher ce produit dans la table produit. Puis en clickant dessus, on obtient tous les conditionnements des differents fournisseurs.
 
Donc je me demande comment construire ces table, qu'elle clé primaire et clé secondaire (index)?

n°365201
MagicBuzz
Posté le 17-04-2003 à 16:52:54  profilanswer
 

produit  
id_prod prod  
------------  
11 ethanol  
12 soude  
 
founisseur
id_fou fou  
------------  
1 ELF  
2 AZF  
3 Petrochimie Int.  
 
prix  
-------------  
id_prod id_fou qté   prix
11      1       20     50
11      1       5      75
11      2       100   100
11      3       10   2500
12      2       90      5


Message édité par MagicBuzz le 17-04-2003 à 16:53:35
n°365218
toutoun88
Posté le 17-04-2003 à 16:56:49  profilanswer
 

@MagicBuzz  
 
 
C'est pas mal ton truc. Encore une question:
Pour faire une recherche plus rapidement avec mysql, je dois les indexé comment les tables, en sachant que ma recherche de depart se fera toujours sur le nom, ou la formule_moleculaire du produit?

n°365222
hop le fou
Tu m'en diras tant
Posté le 17-04-2003 à 16:58:27  profilanswer
 

de 2 choses l une
- soit le type de conditionnement donne tous les autres attributs auquel cas ca devient le type de conditionnement qui est la clé primaire (ce sera l 'attribut qui est sensé relier tes 2 tables)
- soit le type de conditionnement ne donne rien du tout et alors il faut le laisser dans la table des produits paske ca ne generera pas de redondances
ca marche comme ca?

n°365690
MagicBuzz
Posté le 17-04-2003 à 21:38:08  profilanswer
 

toutoun88 > écrit ta requête, une fois qu'elle sera écrite, les champs à indexer sauteront au yeux. tant qu'elle sera pas écrite, on peut débattre des heures dessus, on n'aura pas de réponse absolue.

n°365870
toutoun88
Posté le 18-04-2003 à 09:00:48  profilanswer
 

Ouai, mais le probleme c'est que je debute dans la creation de table. Ce que je veux faire, c'est simple:
select * from conditionnement, produit  
where (select * from produit where "nom" = produit.nom)  
and produit.cas_number = conditionnement.casnumber;
 
La synthaxe est elle juste?
Et les index, c'est quoi dans ce cas la?
Quelle est la synthaxe en mysql pour les créer?
 
Merci.

n°365884
polo021
Posté le 18-04-2003 à 09:19:00  profilanswer
 

toutoun88 a écrit :


select * from conditionnement, produit  
where (select * from produit where "nom" = produit.nom)  
and produit.cas_number = conditionnement.casnumber;


tu peux rappeler ce que ta requete est censee faire?
 
a mon avis la requete devrait etre :
select * from conditionnement , produit  
where produit.nom like "nom"  
and produit.cas_number = conditionnement.casnumber;


Message édité par polo021 le 18-04-2003 à 09:26:06
n°365954
toutoun88
Posté le 18-04-2003 à 09:47:04  profilanswer
 

En fait j'ai oublier de preciser que "nom" etait une variable d'une application java.
 
ce que je veux, c'est que l'utilisateur entre un nom, et ce nom est utilisé dans la requete pour touver tous les produits ayant ce nom dans la table produit. Une fois que ça c'est fait, grace au cas_number retourné, il refait une requete dans la table conditionnement où ce cas_number doit etre egale au cas_number de la table conditionnement.
 
Mais je ne sai pas du tout comment indexer mes champs. Comme je debute en mysql, je ne fais pas trop la difference entre key,foreign key, index, reference...et tout et tout. Moi ce que je veux, c'est que ça aille trés vite, parce que j'ai forcément deux parcours a faire, un dans la table produit, et l'autre dans la table conditionnement qui contiennent chacune environ 100000 lignes!
Merci pour vos conseils

mood
Publicité
Posté le 18-04-2003 à 09:47:04  profilanswer
 

n°365971
polo021
Posté le 18-04-2003 à 09:54:41  profilanswer
 

la question a se poser est : quel est le champ unique de ta table?
Si c'esl le nom, il devient ta cle primaire
 
mais je suis pas trop fort pour ca[:spamafote]

n°365977
toutoun88
Posté le 18-04-2003 à 10:04:58  profilanswer
 

ma clé primaire est deja definie, c'est le cas_number car il est unique pour chaque produit. Mais, mais recherche s'effectue sur le nom.

n°366001
polo021
Posté le 18-04-2003 à 10:18:56  profilanswer
 

si tu as une version de mysql qui accepte les sous requetes, celle que je t'ai donne devrait etre bonne sinon tu la decompose.
 
J'arrive pas a saisir ton probleme :(


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Clés

 

Sujets relatifs
Clés et indexTabeaux - changer les clés
MySQL et les cles etrangeres ?????mot-cles IMPORT/EXPORT
[SQL] Petite question sur les cles etrangeres[ALGO]Cherche algo de vérif de clés pour n° de cheque (math inside)
[NOOB MYSQL] Mysql et les clés étrangères?[java] design... hashmap à 2 clés !?
[algo] trouver l'algo pour générer des clés CRC ??[mySQL] les clés
Plus de sujets relatifs à : Clés


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)