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

Firebird Discussion :

De la conception à l'utilisation


Sujet :

Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut De la conception à l'utilisation
    Bonsoir à tous,

    J'ai conçu un mcd pour gérer les séances d'entrainements de l'association sportive dont je fais partie. La conception ne m'a posé aucun problème, mais à l'utilisation, un doute a surgit:

    deux entités reliées avec comme cardinalités 0,n de part et d'autre:
    Licencié(id_lic, nom_lic ...)
    Séance(id_snc, dat_snc...)
    ce qui donne une table associative:
    Lic_Snc(id_lic, id_snc)

    lorsque je vais passer au codage dois-je commencer par alimenter la table associative ou les tables Licenciés et Séances.
    N'y a t-il pas un moyen pour que lorsque l'on alimente ces deux tables, la table associative soit renseignées automatiquement.

    J'utilise firebird embedd et delphi 7. Merci par avance pour vos éclairages sur "ce point d'ombre".

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    591
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 591
    Par défaut
    Bonjour,

    Des membres plus qualifiés t'apporteront un complément de réponse.

    lorsque je vais passer au codage dois-je commencer par alimenter la table associative ou les tables Licenciés et Séances.
    N'y a t-il pas un moyen pour que lorsque l'on alimente ces deux tables, la table associative soit renseignées automatiquement.
    Il est clair que tu dois saisir d'abord les tables licenciés et Séances car il est impossible de compléter la table associative sans connaître, préalablement, les clés primaires des tables qui doivent être mises en clé étrangère dans la table associative.

    Par contre pour éviter les erreurs, l'ensemble des opérations doivent être placées dans la même transaction. Ainsi, dans le cas d'une erreur, il te sera possible annuler les opérations en cours par un rollback

    Pour l'automatisation, elle peut se faire dans la partie application avec l'appel d'une procédure stockée ou par une requête d'insertion qui sera déclenchée par un évènement à définir. Pour ce point, il faut faire des essais afin de vérifier l'opportunité des différents choix possibles.

    Bon courage.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par RenaudR Voir le message
    lorsque je vais passer au codage dois-je commencer par alimenter la table associative ou les tables Licenciés et Séances.
    N'y a t-il pas un moyen pour que lorsque l'on alimente ces deux tables, la table associative soit renseignées automatiquement.
    J'utilise firebird embedd et delphi 7. Merci par avance pour vos éclairages sur "ce point d'ombre".
    Renseigner la table Licenciés est bien sur la priorité .

    Pour ce qui est des associations , si l'objectif est : pour chaque nouvelle séance , j'inscris tous les licenciés a la séance (table lic_snc) alors un trigger AFTER INSERT sur la table séance pourrait faire le travail


    ce trigger contiendra quelque chose du genre

    (codes bien évidemment non testé, j'ai un petit doute sur le Old.id_snc, je sens que je vais me faire chambrer )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE VARIABLE LIC  <type>;
    BEGIN
    FOR SELECT id_lic FROM licencié INTO :LIC DO
    BEGIN
     INSERT INTO  lic_snc(id_lic, id_snc) VALUES (old.id_snc,LIC);
    END
    END;
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DECLARE VARIABLE SNC  <type>;
    BEGIN
     SNC=old.id_snc
     INSERT INTO  lic_snc(id_lic, id_snc) SELECT :SNC,id_lic FROM licencié;
    END
    END;

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci à vous Seabs et SergioMaster pour vos réponses, je vais commencer à coder, et je sens que ce n'est pas ma dernière question sur ce forum.

    Encore merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Conception] Comment utiliser une BDD dans un site WEB ?
    Par Smollben dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/08/2007, 15h08
  2. conception et utilisation d'une table
    Par lkryss dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 29/06/2006, 11h14
  3. Utilisation générale... Concept de subversion
    Par rabobsky dans le forum Linux
    Réponses: 4
    Dernier message: 10/08/2005, 15h36

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