[Mysql] Problème de conception

Résolu/Fermé
Sheronz Messages postés 21 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 11 décembre 2009 - 23 août 2007 à 06:10
Sheronz Messages postés 21 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 11 décembre 2009 - 23 août 2007 à 10:47
Bonjour à tous,

J'ai récemment développé un base de donnée mysql concernant la vente et la location d'appartements et maisons par le biais d'annonces.
J'ai donc une base "annonce" (qui regroupe les différentes annonces) et une base "bien" (qui regroupe les différents biens immobiliers > appartements et maisons).

Pour tester le système j'ai donc saisi moi même des entrés via phpMyAdmin, jusque là pas de problème j'arrive à afficher les résultats sur mes pages, à faire des tris etc ...

Cependant je m'attaque à présent au formulaire qui va servir à la publication d'annonces, donc un particulier ou une agence pourra venir et proposer son bien immobilier à la vente ou à la location. Le problème c'est que je bloque sur l'insertion des données dans la base :S

Voici à peu près comment se présente mes 2 tables : http://dl.free.fr/getfile.pl?file=/kI4kXrGY/tables_schema.txt

- Les références (ex: M1, A1, A2, etc ...) me servent à faire le liens entre les 2 tables.
- "bien_id" et "annonce_id" s'incrémentent automatiquement.


Imaginons maintenant qu'une personne soumette un appartement à louer, une nouvelle ligne dans mes 2 tables devrait donc être créée de cette manière :

--------------- annonce ---------------
5 | location| A4 | 2007/08/23
------------------------------------------

------------------ bien ------------------
5 | A4 | appartement | blabla....
-------------------------------------------


Seulement je n'arrive pas à comprendre comment faire ma requête pour arriver à un tel résultat :(
J'aurais bien pu faire du "bidouillage" pour arriver à mes fins, mais j'ai bien peur que si 2 personnes soumettent le formulaire en même, des problèmes surviendront...

Merci par avance pour toute aide !
Cordialement,
SheronZ.

2 réponses

Sheronz Messages postés 21 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 11 décembre 2009 5
23 août 2007 à 10:47
Bonjour Gunneboy,

Merci beaucoup pour ton intervention, il est vrai que je me suis un peu laisser aller sur ce point :X, ma connaissance des bases remonte à un an et n'etait pas excellente...
Problème résolu, tout fonctionne ! ;)

Bonne continuation,
SheronZ.
0
Gunneboy Messages postés 4 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 août 2007
23 août 2007 à 08:11
Bonjour Sheronz,

Il semble que tu ne connaisse pas bien le principe des bases de données relationnelles et en particulier l'utilisation des clefs primaires et secondaires:
Je m'explique:
D'après l'organnisation de ta base (du moins si je comprend bien), une annonce peu concerner plusieur biens , alors que, normalement, un bien ne peut faire l'objet que d'une annonce.
Le champ (ou colonne si tu préfert) annonce_immo_ref est donc innutile, et le champ bien_ref contiendra alors le numéro de l'annonce correspondante (c'est à dire, le numéro contenu dans la colonne annonce_id qui s'incrémente automatiquement et qui est donc unique pour chaque annonce).
Ensuite, tu n'as plus qu'à créer une ligne dans la table annonce, et garder en mémoire le numéro annonce_id que MySQL t'auras créer automatiquement pour créer tes lignes correspondantes à cette annonce dans la table biens.
Cela devrait régler ton problème. (Petit conseil, renseigne toi ou révise la méthode MERISE qui est parfaite pour organiser correctement une BDD relationnelle).
-1