Nixeus
Messages postés192Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention19 octobre 2020
-
21 avril 2007 à 12:48
Nixeus
Messages postés192Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention19 octobre 2020
-
21 avril 2007 à 18:50
Bonjour les pros du SQL !
J'ai une question qui me taraude !
Voila, je travail sur une base de donnée Access 2003.
Cette base possède 6 tables, dont 3 tables " ELEVE", "PROFESSEUR" et "MAINTENANCE".
CES 3 tables possèdent un champ "NumeroCarte", numéro UNIQUE !
Je voudrais, en fonction d'un numéro de carte ( NumeroCarte), tester le statut de ce numéro, donc, savoir si c'est un éleve, un professeur, ou une maintenance.
Donc, je souhaiterais en réalité savoir si mon numéro de carte appartiens a la table ELEVE, PROFESSEUR, et MAINTENANCE.
J'avais donc déja pensé a mettre un champ "statut" dans chaque table, mais je trouve que cette solution fait "bidouille".
Je m'en remet donc à vous pour savoir ce que vous feriez à ma place !
Merci a tous !
A voir également:
Un espace de noms ne peut pas contenir directement des membres tels que des champs ou des méthodes
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 21 avril 2007 à 17:48
Salut, dans l'état actuel de ton analyse tu peux faire une proc stockée simple qui retourne un nombre selon la table (0 =eleve, 1= professeur, 2=maintenance) :
create procedure whoIs( @code int )
begin
if exists( select* from eleve e where e.code_carte = @code )
return(0)
if exists( select* from proffesseur p where p.code_carte = @code)
return(1)
if exists( select* from maintenance m where m.code_carte = @code )
return(2)
-- pas trouvé
return(100)
end
Mais il vaudrait mieux créer un index unique sur code_carte et un champ préfixe char(1), avec une contrainte default : in('E', 'P', 'M') :
lié en tant que contrainte unique avec code_carte pour les 3 tables.
Nixeus
Messages postés192Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention19 octobre 2020 21 avril 2007 à 18:50
AAA d'acord !
Je ne connaissais pas ce langage.
Ca ma l'air compliqué, je crois que je vais tout fusionné en une table alors, je vais étudier cela :s
Je pense que j'ai mal concu ma base de donnée la !
Merci