[MySQL] probleme de clé etrangere

probleme de clé etrangere [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 01-08-2007 à 11:07:00    

Bonjour
 
J'ai un petit problème : j'ai 3 table :
client(N°client, ...)
chambre(n°chambre, ...)
reservation(N°reservation, #N°client, #N°chambre)
 
Et là gros trou de mémoire (c'est l'été) : comment récupérer le client qui a reservé la chambre n°... ? les numéro client et numéro chambre sont en autoincrement, ca va ou il vaut mieux générer des numéro ?
 
Je reexplique car c'est pas tres clair (pour moi) :  
Dans ma requete de recupération, je compte mettre where client.N°Client = reservation.N°Client and reservation.N°Chambre=chambre.N°Chambre, mais ces données je dois les insérer et je ne sais pas trop comment faire correspondre tout ca. Il faut des clés etrangeres non ? je galere un peu pour les mettre...

Reply

Marsh Posté le 01-08-2007 à 11:07:00   

Reply

Marsh Posté le 01-08-2007 à 12:34:07    

Je ne suis pas sûr de comprendre ta question. C'est ça que tu veux faire ?
 
SELECT * FROM client,reservation WHERE client.id=reservation.client_id AND reservation.chambre_id='42';
 
Autoincrement c'est très bien pour ce que tu veux faire à priori.
 
 
Précise ta question ou ce que tu veux faire, et je te répondrai. ;-)


---------------
Viendez vous battre à Prologin \o/
Reply

Marsh Posté le 01-08-2007 à 14:21:03    

si chambre_id est un numérique, pas besoin des quote.

Reply

Marsh Posté le 01-08-2007 à 15:39:01    

oui c'est ca que je veux faire, mais je ne sais pas comment lier les tables entre elles. Par exemple dans la table client j'ai 3 lignes, dans la table réservation 5 lignes.
Un client fait une commande. les infos sont stockées dans la ligne 3 de client, ligne 5 de réservation. Vu que c'est en autoincrement les numero clients seront différents, donc pour récupérer les valeurs je verrai le bon client avec la réservation d'un autre client...vous voyez a peu pres ce que je veux dire ? si j'ai un numéro unique je peux faire une recherche sans problemes, mais là le numéro client sera différent selon la table...


Message édité par hercule29 le 01-08-2007 à 15:39:33
Reply

Marsh Posté le 01-08-2007 à 15:44:01    

Pour faciliter ta conception, seules les clés primaires doivent être en autoincrement (j'en vois déjà certains sortir la batte en métal mais bon ^^).
 
La liaison se fait avec des INNER JOIN dans ton cas.

Reply

Sujets relatifs:

Leave a Replay

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