Vous n'êtes pas identifié(e).

#1 04/06/2013 15:12:41

Des termes à éclaircir...

Bonjour,


Je me perds un peu dans des termes relatifs aux clés étrangères donnés dans la documentation mais pas expliqués plus clairement que ça, visiblement...



Si je prends un exemple simple :


> une table camion avec les attributs : cam_id, cam_immatriculation
> une table intervention avec les attributs : int_id, int_date, int_duree et int_cam_id


La table intervention comporte une clé étrangère qui est la clé primaire de la table camion.


Questions :


- Quelle est la table référençant ?
- Quelles sont les colonnes et lignes référencées ?
- Quelles sont les lignes de référence ?
- Quelles lignes référencent quelles lignes ?



Merci beaucoup !


Thomas

Dernière modification par Thomas Williamson (04/06/2013 15:13:43)

Hors ligne

#2 04/06/2013 18:14:32

SAS
Membre

Re : Des termes à éclaircir...

La table référençante est la table intervention, qui référence la table camion.


La table référencée est la table camion.

La colonne référencée est la clé primaire de la table camion, soit la colonne camion.cam_id.

Les lignes référencées sont celles de camion pour lesquelles on trouve intervention.int_cam_id=camion.cam_id.

Les lignes de la table intervention référencent celles de camion.

Est-ce plus clair ?

Dernière modification par SAS (04/06/2013 18:19:22)


Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com

Hors ligne

#3 05/06/2013 08:15:14

Re : Des termes à éclaircir...

Bonjour,


C'est clair, merci beaucoup ! Je posais la question par rapport à l'utilisation de l'action référentielle RESTRICT. D'après ce que j'ai compris, celle-ci se paramètre au niveau de la clé étrangère (ici : int_cam_id) et définit les répercutions sur la table qui référence (intervention) d'actions effectuées sur la table de référence (camion).


Par exemple, écrire ON DELETE RESTRICT indique qu'il sera nécessaire qu'aucune ligne de la table intervention ne fasse référence à un camion donné pour pouvoir supprimer ce camion de la table camion. Ecrire ON DELETE CASCADE indique que la suppression d'un camion donné de la table camion aura pour conséquence la suppression des lignes de la table intervention qui le référencent. Même comportement avec les ON UPDATE RESTRICT / CASCADE pour les mises à jour (les modifications apportées aux enregistrements de la table de référence).


C'est bien ça ? J'aurais juste besoin de savoir si j'ai bien interprété les choses...


Bonne journée et merci encore !


Thomas

Hors ligne

#4 05/06/2013 09:25:23

SAS
Membre

Re : Des termes à éclaircir...

Bonjour,

C'est bien cela.
Votre interprétation est la bonne.


Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com

Hors ligne

#5 05/06/2013 09:29:21

Re : Des termes à éclaircir...

Merci beaucoup !


Thomas

Hors ligne

Pied de page des forums