A
vec les informations que je récupère, je dois générer les clés primaires et étrangères, qui n'ont pas été générées lors de la création des tables, en respectant les contraintes d'intégrités.
Je récupère les informations sous la forme :
{nom du lien,table source, table destinataire, champ clé,cardinalité,type de relation, lien reverse}
Un exemple simple:
{Commande, CONTRAT, commande, contratid, n, owncopy, Contrat}
{Contrat, COMMANDE, contrat, contratid, 1, normal, -}
Interprétation :
1 contrat peut contenir plusieurs commandes, mais une commande est associée à un seul contrat
La suppression d'une commande n'implique pas la suppression du contrat
La suppression dun contrat implique la suppression de toutes les commandes associées
Contratid est la clé primaire de Contrat, donc on génère une foreign key dans la table commande, avec delete on cascade pour permettre la suppression des commandes associées au contrat lors de la suppression de ce dernier.
Là, le cas est simple, mais les cas particuliers se multiplient :
autre exemple qui me pose un peu plus de difficultés :
{Fournisseur, COMMENT, fournisseur, cmtid, 1, neutral, Comment}
{Comment, FOURNISSEUR, comment, commentid, 1, owncopy, -}
Si on supprime un fournisseur liée à un commentaire, le commentaire associé est supprimé.
La suppression du commentaire n'implique rien sur l'entité fournisseur, ce champ n'étant pas obligatoire à l'origine.
Ici la clé primaire appartient à la table comment, ma foreign key est donc dans la table fournisseur.
Un delete on cascade implique que la suppression du commentaire engendre la suppression du fournisseur.
Comment faire cette relation à l'inverse.
Autre type de relation problématique :
{LoueurAssi, CONTACTLOUEUR, contrat, contloueurid, n, normal, Assistant}
{Assistant, CONTRAT, contactloueur, assistantid, 1, normal, -}
Interprétation :
1 Contrat est associé à un contactLoueur
1 contactLoueur est lié à plusieurs contrats
Les 2 liens sont de type "normal", ce qui veut dire :
la suppression d'un contrat n'implique pas la suppression du contact
La suppression du contact ne doit pas générer non plus la suppression des contrats qu'il a saisi
Comment ceci se traduit au niveau des contraintes d'intégrité?
Peut on cumuler les contraintes d'intégrité enfaisant par exemple un delete on cascade et update NO ACTION...
je vous remercie par avance