[SQL][MCD] Lien identifiant

Lien identifiant [SQL][MCD] - SQL/NoSQL - Programmation

Marsh Posté le 19-08-2005 à 19:24:18    

Voila mon problème : je ne sais pas traduire en SQL les liens identifiants qui existent en analyse dans les MCD, afin de construire la base de données.
J'ai eu l'idée de générer ma base de donnée a partir d'un MCD crée avec AnalyseSI, mais sans succès (je n'ai pas trouvé comment créer un lien identifiant).
 
http://forceuser.free.fr/images/mcdid.png
 
Par exemple, chaque camion effectue des livraisons de Lot, et un Lot est identifié par son numéro, complété par l'IdCamion du camion l'ayant livré, et ce afin de faire un economie sur les IdLot.
 
Un âme charitable pourrait-elle me donner la requête de création et d'interrogation en SQL ? (oui je sais, je suis handicapée en SQL, mais je débute seulement ^^)
 
Marchi bien !

Reply

Marsh Posté le 19-08-2005 à 19:24:18   

Reply

Marsh Posté le 19-08-2005 à 20:01:15    

Dans la table des lots, il faut un champ camion_id (quand j'écris la réponse, je ne vois plus le dessin, et je ne me souviens plus du nom exact des champs). Par contre dans la table des camions, on ne peut pas mettre un champ lot_id, parce qu'il peut uy avoir plusieurs lots par camion.
 
Puis la recherche des infos sur un lot se fait par exemple avec


SELECT lot.lot_nom,
       camion.camion_nom
  FROM lot, camion
 WHERE
       lot.camion_id = camion.camion_id

:)  

Reply

Marsh Posté le 19-08-2005 à 20:20:45    

Merci bien ! ^^
 
Euh..., l'id camion je le met aussi en clé primaire (sous phpmy admin) ?
 
oui oui, demain je vais m'acheter un manuel SQL :D


Message édité par Sh4rl33n le 19-08-2005 à 20:25:43
Reply

Marsh Posté le 19-08-2005 à 20:43:08    

Non, l'id camion dans la table Lot, est ce que l'on appelle une clef externe (foreign key ou FK in English), et on ne l'a met pas en clef primaire (PK dans les bouquins anglais).

Reply

Marsh Posté le 19-08-2005 à 21:05:11    

Euh, alors dans ce cas, ce n'est pas ce qui est qualifié en analyse par un lien identifiant, amsi ça se tranforme alors en relation de type N,M.
 
Dans mon exemple, si il s'agissait d'une relation N,M, le camion numéro 654 livrerait les lots 1, 2 et 3, le camion numéro 987 les lots 4,5,6, mais 2 lots ne pourraient pas avoir le même numéro.
 
Dans les relations où il y a un lien identifiant, ici du coté des lots, un lot sera identifié par IdLot, mais aussi par l'Id_Camion, c'est a dire :
Le camion 321 auraient des lots notés 1,2 et 3, respectivement identifiés donc par 321 1, 321 2, 321 3, et le camion 987 aurait des lots numérotés aussi 1 2 et 3, mais cette fois identifiés respectivement par 987 1, 987 2 et 987 3.
 
Je sais que c'est pas super clair, mais c'est des concepts d'analyse, et on ne m'a pas franchement appris (ou j'ai du secher trop de cours) à passer de l'analyse à la BD.


Message édité par Sh4rl33n le 19-08-2005 à 21:06:04
Reply

Marsh Posté le 19-08-2005 à 21:10:18    

Une relation N,M, ou plus exactement N:M (c'est-à-dire 0,n d'un côté, et 0,m de l'autre côté) se produirait si un lot, par exemple le lot 2, pouvait être associé au camion 1 et au camion 5. Mais, j'ai considéré que le id_lot était comme un code barres, qu'il était unique pour chaque lot, d'une manière globale, mais j'ai peut-être mal compris.

Reply

Marsh Posté le 19-08-2005 à 21:15:01    

C'est moi qui me suis mal exprimée :)
 
Donc en clair : pour chaque camion, la numérotation des lots est la même, de 1 à n lots.
Mais pour identifier les lots individuellement, on a besoin du numéro de camion.
 
En fait je me lance dans le php/mysql, et je voulais que dans la programmation d'un forum, pour chaque topic(camion), on ai des posts(lots).
Mais je crois qu'au final je vais alisser tomber le lien identifiant qui ne sert à rien :D
 
Merci pour ton aide en tous cas :D Je secherai plus les CM de BD :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed