{Access} Clé étrangère vide ou nulle?

Résolu/Fermé
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 - 6 déc. 2009 à 23:48
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 9 déc. 2009 à 08:48
Bonjour,

j'ai une table VENTE, CASH, CREDIT et CAUTION. Une vente peut être réglée soit cash, soit à crédit soit par caution. Pour simplifier les choses (pour ma programmation, lol)j'ai "migrer" les identifiants de CASH, CREDIT et CAUTION comme clés étrangères dans l'entité VENTE. Ce qui veut dire que lors de l'enregistrement d'une vente deux des trois clés étrangères seront vides voire nulles. Qu'en pensez-vous? Se pourrait-il que je rencontre des problèmes plus tard? Est-ce qu'une clé étrangère peut être vide ou nulle?

VENTE(numvente,datevente,...,numcash,numcredit,numcaution)
CASH(numcash)
CREDIT(numcredit,nombeneficiaire)
CAUTION(numcaution,proprietaire,solde)


Merci d'avance.

Cordialement.
A voir également:

6 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
7 déc. 2009 à 10:33
Bonjour,
bien sûr une clé étrangère peut être null à partir du moment où dans vos relations vous n'avez pas exigé une valeur, tout simplement.
Pour en revenir à la table de vente, la question à se poser c'est : est ce que une vente chez vous peut être créée sans une valeur "cash", "credit" et "caution" ? Si la réponse est affirmative, vous n'aurez pas de problème.
Mais sans analyser outre mesure votre application il me semble qu'il serait judicieux pour votre comptablilité de vérifier qu'au moins un des trois s'y trouve non ? ;-)
0
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
7 déc. 2009 à 11:19
Bonjour et Merci OlivrT pour votre aide. Une vente est soit cash, soit crédit ,soit par caution, donc une vente ne peut pas ne pas avoir de valeur. Par contre est-ce que je n'aurait pas de problème pour faire des jointures si des valeurs sont nulles?

Merci d'avance.

Cordialement.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
7 déc. 2009 à 11:32
Quand vous dites soit "Cash", soit "Crédit", ... vous voulez dire que dans votre table de vente il y aura la clé étrangère Cash ou celle qui correspond à Crédit ?
Dans ce cas là, non, cela ne posera aucun problème pour autant que quand vous ferez vos jointures vous serez attentif à ce que certains enregistrements pourront ne pas être présents puisque la valeur pour le mode de paiement peut variée.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
7 déc. 2009 à 11:36
Je reviens sur votre texte de départ car quelque chose m'avait échappé, vous avez écrit :

" Ce qui veut dire que lors de l'enregistrement d'une vente deux des trois clés étrangères seront vides ..."

pourquoi avez-vous dans votre table de vente 3 clés étrangères ???
Une seule suffit. Elle pointure vers une table que j'appellerai "Mode de paiement" et vous ferez un lien 1 à plusieurs.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
js8bleu Messages postés 576 Date d'inscription samedi 14 octobre 2006 Statut Membre Dernière intervention 27 janvier 2014 4
8 déc. 2009 à 02:14
Bonjour OlivrT. Merci pour votre intérêt. En effet, j'avais songé à cette solution :
pourquoi avez-vous dans votre table de vente 3 clés étrangères ???
Une seule suffit. Elle pointure vers une table que j'appellerai "Mode de paiement" et vous ferez un lien 1 à plusieurs.

Mais vous avez certainement dû remarquer qu'il y a des propriétés qui sont propres à CREDIT et des propriétés qui sont propres à CAUTION. Ce qui veut dire (à mon humble avis) que votre solution ne marchera pas car seules les propriétés identiques peuvent se retrouver dans l'entité "Mode de Paiement". Où peut-être que je n'ai pas bien compris. Qu'en pensez-vous?

Merci d'avance pour votre précieuse aide.

Cordialement.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
9 déc. 2009 à 08:48
je ne connais pas tous les détails mais pour moi, je reste sur l'identification d'un mode de paiement auquel pourquoi pas, vous associerez des propriétés ... Le mode de paiement identifierai le dépôt et vous associez à cette table une table de lien pour y attacher un nombre de propriété selon le mode de paiement du client.
Cette difficile de répondre comme ça sur un forum car il faut connaître un peu plus et analyser.
En tout cas oubliez ces 3 fk dans votre table de vente, vous n'aurez que des soucis après.
Si demain un nouveau mode de paiement arrive sur le marché vous devrez modifier vos tables, vos rapports, ...
0