IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Tables liees par relation 1 a 1 et ajout de record


Sujet :

Access

  1. #1
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut Tables liees par relation 1 a 1 et ajout de record
    J'ai plusieurs tables avec une relation 1 a 1: une table ManufactureOrder, une table TeamLeader, une table Scrap... et dans les tables TeamLeader, Scrap et autres il y a une cle etrangere sur la cle de ManufactureOrder.

    A l'origine j'avais tout dans une table mais ca commencait a faire beaucoup de champs et je pensais que ca allait moins m'embrouiller de separer en plusieurs tables.

    Le probleme c'est que du coup mon formulaire ou on rentre toutes les infos, il n'est plus base sur la seule table ManufactureOrder mais sur la jointure de toutes les tables. (je voulais pas passer par des sous-formulaires parce que mon formulaire etait deja fait et selon la disposition ca pouvait pas coller)

    Du coup pour qu'on puisse rentrer des infos, comme la jointure est de type INNER JOIN, si je veux qu'il arrive a faire la jointure, il faut qu'il y ait une ligne dans chacune des tables Scrap, TeamLeader... qui correspond au ManufactureOrder qu'on ouvre (vide) pour qu'il arrive a afficher le formulaire.

    Pour l'instant ma solution est assez bricolage: sur le formulaire de creation d'un nouveau ManufactureOrder, j'ai dans le AfterInsert plein de requetes d'insertion (INSERT INTO Scrap etc) qui creeent des lignes vides avec la cle etrangere sur le ManufactureOrder qui vient d'etre cree.
    De meme quand je veux supprimer un ManufactureOrder, quand on clique sur le bouton Delete, il va effacer d'abord tous les records qui correspondent dans les autres tables puis le record dans la table ManufactureOrder (et dans cet ordre sinon evidemment il ne veut pas effacer le record de ManufactureOrder s'il reste des records "fils" dans les autres tables)

    Je trouve que c'est un peu bricolage, est-ce qu'il n'y a pas un moyen d'ameliorer tout ca?

  2. #2
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Bonjour,

    "Désolé mais moi rien avoir compris ce que tu veux"

    Si tu veux mon avis pour faire de relation 1:1 ce n'est pas forcément le nombre de champs dans une table qui est déterminant mais la structure des données éviter la redondance et de bien analyser les dépendance entre les données (voir mérise). C'est très très important pour ne pas avoir du bricolage par la suite comme tu le dis très justement.

    Malheureusement çà prend du temps au départ mais çà vaut la peine par la suite.

    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/09/2009, 11h57
  2. Requete SQL entre 2 tables liés par une relation many to many
    Par macmanaman dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/05/2009, 16h37
  3. jointure avec 3 tables liées par la méme relation
    Par lenstoi dans le forum Langage SQL
    Réponses: 5
    Dernier message: 29/08/2007, 10h17
  4. [SQL] Requête SQL avec 3 tables liées par la même relation
    Par lenstoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/08/2007, 23h32
  5. Réponses: 3
    Dernier message: 14/06/2007, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo