-- ============================================================
--   Nom de la base   :  MCD_ReseauSocial 
--  
--   Date de création :  14/06/2011
--  
-- ============================================================

-- ============================================================
--   Table : Personne
-- ============================================================

	DROP TABLE ParcoursScolaire;
	DROP TABLE ParcoursProfessionnel;
	DROP TABLE Amis;
	DROP TABLE SerieTele;
	DROP TABLE EmissionTele;
	DROP TABLE Musique;
	DROP TABLE Livre;
	DROP TABLE Film;
	DROP TABLE Sport;
	DROP TABLE Jeux;
	DROP TABLE AutreInteret;
	DROP TABLE Message;
	DROP TABLE Conversation;
	DROP TABLE CentreInteret;
	DROP TABLE Personne;
	
	
	create table ParcoursScolaire
	(
	id_ParcoursScolaire INTEGER not NULL,
	etablissement VARCHAR(32) NOT NULL,
	ville VARCHAR(32) NOT NULL,
	pays VARCHAR (32) NOT NULL,
	periode VARCHAR(32) CHECK(periode LIKE '_/_') NOT NULL,
	primary key (id_ParcoursScolaire)
	);
	
	create table ParcoursProfessionnel
	(
	id_ParcoursProfessionnel INTEGER NOT NULL,
	entreprise VARCHAR(32) NOT NULL,
	poste VARCHAR(32) NOT NULL,
	ville VARCHAR(32) NOT NULL,
	pays VARCHAR(32) NOT NULL,
	periode VARCHAR(32) CHECK(periode LIKE '_/_') NOT NULL,
	primary key (id_ParcoursProfessionnel)
	);
	
	
	create table Amis
	(
	id_Amis INTEGER NOT NULL,
	id_Personne INTEGER NOT NULL,
	statut VARCHAR(32) CHECK(statut IN ('unidirectionnel', 'bidirectionnel')),
	degre INTEGER CHECK (degre<11),
	primary key (id_Amis)
	);
	

	
	create table SerieTele
	(
	id_SerieTele INTEGER NOT NULL,
	genre VARCHAR(32) NOT NULL,
	realisateur VARCHAR(32),
	titre VARCHAR(32),
	annee INTEGER CHECK (annee BETWEEN 1950 and 2012),
	primary key (id_SerieTele)
	);
	
	create table EmissionTele
	(
	id_EmissionTele INTEGER NOT NULL,
	genre VARCHAR(32) NOT NULL,
	presentateur VARCHAR(32),
	chaineTele VARCHAR(32),
	primary key (id_EmissionTele)
	);
	
	CREATE TABLE Musique
(
id_musique INTEGER NOT NULL,
genre VARCHAR(32) NOT NULL,
artiste VARCHAR(32),
album VARCHAR(32),
titre VARCHAR(32),
PRIMARY KEY(id_musique)
);

CREATE TABLE Livre
(
id_livre INTEGER NOT NULL,
genre VARCHAR(32) NOT NULL,
auteur VARCHAR(32),
titre VARCHAR(32),
PRIMARY KEY(id_livre)
);

CREATE TABLE Film
(
id_film INTEGER NOT NULL,
genre VARCHAR(32) NOT NULL,
realisateur VARCHAR(32),
titre VARCHAR(32),
annee INTEGER CHECK(annee BETWEEN 1890 AND 2012),
PRIMARY KEY(id_film)
);

CREATE TABLE Sport
(
id_Sport INTEGER NOT NULL,
genre VARCHAR(32) NOT NULL,
libelle VARCHAR(32),
PRIMARY KEY(id_Sport)
);

CREATE TABLE Jeux 
(
id_Jeux INTEGER NOT NULL,
genre VARCHAR(32) NOT NULL,
libelle VARCHAR(32),
PRIMARY KEY(id_Jeux)
);

CREATE TABLE AutreInteret
(
id_AutreInteret INTEGER NOT NULL,
libelle VARCHAR(32) NOT NULL,
descriptif VARCHAR(32),
PRIMARY KEY(id_AutreInteret)
);

CREATE TABLE Message
(
id_Message INTEGER NOT NULL,
libelle VARCHAR(32) NOT NULL,
heure VARCHAR(32) NOT NULL,
annee DATE NOT NULL,
PRIMARY KEY(id_Message)
);

CREATE TABLE eMail
(
id_eMail INTEGER NOT NULL,
objet VARCHAR(32),
multimedia VARCHAR(32),
emetteur VARCHAR(32) NOT NULL,
recepteur VARCHAR(32) NOT NULL,
PRIMARY KEY(id_eMail)
);



CREATE TABLE Conversation
(
id_Conversation INTEGER NOT NULL,

PRIMARY KEY(id_Conversation)
);

	create table CentreInteret
	(
	id_CentreInteret INTEGER NOT NULL,
	id_Musique INTEGER NOT NULL,
	id_Livre INTEGER NOT NULL,
	id_Film INTEGER NOT NULL,
	id_SerieTele INTEGER NOT NULL,
	id_EmissionTele INTEGER NOT NULL,
	id_Sport INTEGER NOT NULL,
	id_Jeu INTEGER NOT NULL,
	primary key (id_CentreInteret)
	);
	
	create table Personne
	(
	id_Personne INTEGER NOT NULL,
	nom  VARCHAR(32) NOT NULL ,
	prenom VARCHAR(32) NOT NULL ,
	sexe CHAR(5) CHECK (sexe IN ('HOMME','FEMME')),
	dateNaissance DATE,
	lieuNaissance VARCHAR(32),
	email VARCHAR (32)NOT NULL CHECK(email LIKE '_@_'),
	mdp VARCHAR (16)NOT NULL,
	id_ParcoursScolaire INTEGER NOT NULL,
	id_ParcoursProfessionnel INTEGER NOT NULL,
	id_CentreInteret INTEGER NOT NULL,
	id_Conversation INTEGER NOT NULL,
	primary key (id_Personne)
	);
