Références entre enregistrements avec les OID
Les OID peuvent être une alternative aux clés étrangères pour référencer des enregistrements.
Syntaxe : Modèle logique
Syntaxe : LDD SQL3
Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
CREATE TYPE type_objet AS OBJECT ...
2
3
CREATE TABLE table1 OF type_objet ...
4
5
CREATE TABLE table2 (
6
...
7
clé_étrangère REF type_objet,
8
SCOPE FOR (clé_étrangère) IS table1,
9
);
CREATE TYPE type_objet AS OBJECT ... CREATE TABLE table1 OF type_objet ... CREATE TABLE table2 ( ... clé_étrangère REF type_objet, SCOPE FOR (clé_étrangère) IS table1, );
Remarque : SCOPE FOR
Renforce l'intégrité référentielle en limitant la portée de la référence à une table particulière (alors que REF seul permet de pointer n'importe quel objet de ce type)
Exemple :
Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
CREATE OR REPLACE TYPE typCours AS OBJECT(
2
pkannee number(4),
3
pknum number(2),
4
titre varchar2(50),
5
type char(2),
6
refintervenant REF typIntervenant,
7
debut date,
8
MEMBER FUNCTION fin RETURN date
9
);
10
/
11
12
CREATE TABLE tCours OF typCours (
13
CHECK (pkannee>2000 and pkannee<2100),
14
type NOT NULL,
15
CHECK (type='C' or type='TD' or type='TP'),
16
refintervenant NOT NULL,
17
SCOPE FOR (refintervenant) IS tIntervenant,
18
PRIMARY KEY(pkannee, pknum)
19
);
CREATE OR REPLACE TYPE typCours AS OBJECT( pkannee number(4), pknum number(2), titre varchar2(50), type char(2), refintervenant REF typIntervenant, debut date, MEMBER FUNCTION fin RETURN date ); / CREATE TABLE tCours OF typCours ( CHECK (pkannee>2000 and pkannee<2100), type NOT NULL, CHECK (type='C' or type='TD' or type='TP'), refintervenant NOT NULL, SCOPE FOR (refintervenant) IS tIntervenant, PRIMARY KEY(pkannee, pknum) );