-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathversionOracle.sql
More file actions
132 lines (121 loc) · 3.54 KB
/
versionOracle.sql
File metadata and controls
132 lines (121 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/**
* Projet BDD
* Base de donnée de la NSA
*
* @author : Olivia Bruce
* @author : Matthieu Riou
* @author : Brice Thomas
*/
/**
* La table personne.
* Permet d'enregistrer des personnes.
*/
CREATE TABLE Personne (
idPersonne NUMBER PRIMARY KEY,
nom VARCHAR2(255),
prenom VARCHAR2(255),
sexe VARCHAR2(20),
dateNaissance DATE,
adressePrincipale VARCHAR2(255),
descriptionPhysique VARCHAR2(255),
CONSTRAINT sexe CHECK (sexe IN ('Homme', 'Femme'))
);
/**
* La table entrerise.
* Permet d'enregistrer les entreprises.
*/
CREATE TABLE Entreprise (
idEntreprise NUMBER PRIMARY KEY,
nomEntreprise VARCHAR2(255),
statutEntreprise VARCHAR2(255)
);
/**
* La table employe.
* Permet d'enregistrer une personne employee dans une entreprises.
* Reference à la table entreprise et personne.
*/
CREATE TABLE Employe (
idPersonne NUMBER REFERENCES Personne,
idEntreprise NUMBER REFERENCES Entreprise,
statutEmploye VARCHAR2(255),
PRIMARY KEY (idPersonne, idEntreprise)
);
/**
* La table prioritaire.
* Permet d'enregistrer les personnes dont le statut de surveillance est prioritaire.
* Reference à la table personne.
*/
CREATE TABLE Prioritaire (
idPersonne NUMBER REFERENCES Personne,
statutPrioritaire VARCHAR2(255),
PRIMARY KEY(idPersonne, statutPrioritaire)
);
/**
* La table prioritaire.
* Permet d'enregistrer les relations entre deux personnes.
* Reference à la table personne.
*/
CREATE TABLE Relation (
emetteur NUMBER,
recepteur NUMBER,
typeRelation VARCHAR2(255),
contexteRelation VARCHAR2(255),
PRIMARY KEY (emetteur, recepteur),
--CONSTRAINT typeRelation CHECK (typeRelation IN ('Connaissance', 'Amitie', 'Mariage', 'Divorce', 'Adultere', 'Ennemi')),
--CONSTRAINT contexteRelation CHECK (contexteRelation IN ('Travail', 'Famille', 'Etude', 'Internet', 'Logement')),
FOREIGN KEY (emetteur) REFERENCES Personne(idPersonne),
FOREIGN KEY (recepteur) REFERENCES Personne(idPersonne)
);
/**
* La table des mails.
* Permet d'enregistrer les adresses mails de chaque personne.
* Reference à la table personne.
*/
CREATE TABLE Mail (
adresseMail VARCHAR2(255) PRIMARY KEY,
mdpMail VARCHAR2(255),
proprietaireMail NUMBER,
fournisseurMail VARCHAR2(255),
CONSTRAINT fournisseurMail CHECK (fournisseurMail IN ('Free', 'Orange', 'Laposte')),
FOREIGN KEY (proprietaireMail) REFERENCES Personne(idPersonne)
);
/**
* La table Telephone.
* Permet d'enregistrer les numeros de telephone de chaque personne.
* Reference à la table personne.
*/
CREATE TABLE Telephone (
numTelephone VARCHAR2(255) PRIMARY KEY,
codePin NUMBER,
proprietaireTelephone NUMBER,
fournisseurTelephone VARCHAR2(255),
CONSTRAINT fournisseurTelephone CHECK (fournisseurTelephone IN ('SFR', 'Free', 'Orange', 'Bouygues', 'Numericable')),
FOREIGN KEY (proprietaireTelephone) REFERENCES Personne(idPersonne)
);
/**
* La table comptebancaire.
* Permet d'enregistrer les comptes banquaires de chaque personne.
* Reference à la table personne.
*/
CREATE TABLE CompteBancaire (
iban VARCHAR2(255) PRIMARY KEY,
solde NUMBER,
codeBancaire NUMBER,
proprietaireCompteBancaire NUMBER,
FOREIGN KEY (proprietaireCompteBancaire) REFERENCES Personne(idPersonne)
);
/**
* La table conversation.
* Permet d'enregistrer les conversations entre deux personnes.
* Reference à la table personne.
*/
CREATE TABLE Conversation (
idConv NUMBER PRIMARY KEY,
dateHeureConv DATE,
typeConv VARCHAR2(255),
contenuConv VARCHAR2(1500),
allocuteur1 NUMBER,
allocuteur2 NUMBER,
FOREIGN KEY (allocuteur1) REFERENCES Personne(idPersonne),
FOREIGN KEY (allocuteur2) REFERENCES Personne(idPersonne)
);