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

Développement SQL Server Discussion :

Clé étrangère qui référence procédure stockée ou vue? (utilisation de données filtrées d'une table > fk)


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 108
    Points : 52
    Points
    52
    Par défaut Clé étrangère qui référence procédure stockée ou vue? (utilisation de données filtrées d'une table > fk)
    Bonjour et bonne année 2016!
    Désolé si le titre ne vous semble pas clair mais je ne sais pas vraiment comment aborder ça...
    Je vais essayer d'être le plus clair possible. J'ai une liste de réceptions, une liste de plats (avec 3 types de plats), une liste d'invités, une liste de choix de plats pour une réception donnée

    J'ai déjà réussi à faire ceci: une procédure stockée (cela pourrait être mis dans une vue aussi) qui m'affiche les plats choisi par l'organisateur pour une réception donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    USE [Reception]
    Create PROCEDURE [sInscri].[sp_ShowMenuCDessertByRec]
    	@RecID INT 
    AS
    BEGIN
    	SELECT TOP 1000 [fkReception], [idPlat], [libPlat]
    	FROM [Reception].[dbo].[tPlat]
    	INNER JOIN [Reception].[dbo].[tMenuChoix]
    	ON tPlat.idPlat = tMenuChoix.fkPlat AND fkReception = @RecID AND [fkPlatType] = 3
    END
    et quand je veux exécuter:
    Exec sInscri.sp_ShowMenuCDessertByRec 4

    il m'affiche par exemple 3 desserts (ici l'id de la réception, du plat, et son libellé)
    Crème de mangues aux noix de cajou parfumée au citron
    Mousse au chocolat parfumée aux noisettes (vegan)
    Fondant au chocolat

    Maintenant j'ai une table qui contient les inscriptions avec le choix d'un type de plat par inscription d'un invité

    J'aimerais pouvoir utiliser les données générées par ma procédure stockée (ou de ma vue) dans ma clé étrangère.
    C'est à dire que je voudrais dans fkChoixEntree, fkChoixPlat, fkChoixDessert, l'id du plat qu'il aura choisi mais ce plat se base sur tMenuChoix et pas sur tPlat. Je ne sais vraiment pas comment je vais implémenter cela.


    En clair, j'ai une table tPlat qui liste mes plats, une table tMenuChoix qui liste les plats choisis par l'organisateur et je dois implémenter le choix de l'Invité, non pas sur tPlat mais sur tMenuChoix (et selon le type de plat).

    Pour des raisons de logique (un seul choix, un type de plat, 3 plats), j'ai décidé pour faire simple de le mettre en 3 colonnes dans les inscriptions plutôt que d'en faire une table séparée. Si c'est plus simple pour vous de me donner une solution en utilisant une table séparée, je suis preneur!

    Si vous avez des idées ou une autre manière d'y arriver je suis preneur car je suis complètement perdu sur la manière de solutionner ce problème


    Et merci beaucoup!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 108
    Points : 52
    Points
    52
    Par défaut
    Bon la seule alternative que j'ai c'est de lier les 3 attributs à tPlat et de créer un trigger en insert pour vérifier que ce que j'entre fait bien partie d'un critère (doit être dans tMenuChoix d'après l'attribut de réception et le type de plat doit correspondre à l'attribut... En attendant je vais pas insister et je vais avancer dans d'autres parties de mon projet, je me dis de toutes façons que si sur Visual Studio l'invité ne peut choisir d'un élément de cette liste, ca sert sans doute à rien de faire un trigger puisque l'élément sera bien placé... enfin voilà si vous me comprenez pas désolé pour le dérangement

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    De ce que j'en ai compris, je pense que vous avez avant tout un problème de modélisation.

    il eut bien fallu créer une table pour stocker le choix des plats en fonction du type de plat.

    détaillez votre modèle et votre besoin afin qu'on puisse mieux vous aider.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2015, 18h12
  2. performances : select, procédure stockée ou vue ?
    Par Benoit_Durand dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/02/2011, 14h02
  3. Procédure Stockée et vue
    Par hisy dans le forum Développement
    Réponses: 2
    Dernier message: 14/07/2009, 08h13
  4. besoin de conseil sur les procédures stockées et vues.
    Par zenfantasy dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2007, 21h41
  5. Procédure stockée et vues
    Par freegreg dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/03/2007, 10h05

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