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!