Cas immotif

Tout ce qui tourne autour de Postgresql.
Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1294
Inscription : 11 sept. 2011, 16:32

Cas immotif

Message par fabio » 13 sept. 2017, 18:25

Réalisé à l'aide de Visual Paradigm

Script pour l'administrateur

Code : Tout sélectionner

create role immotif_admin password 'toto' login;
create database immotif;
grant all on database immotif to immotif_admin;
Script pour le propriétaire de la base

Code : Tout sélectionner

begin transaction;

-- Partie métier

create table copropriete
	(
	id_cop	integer primary key,
	nom		varchar(50), 
	adresse	varchar(100), 
	cp			char(5), 
	ville		varchar(100), 
	date_debut_exercice 	date
	);

create table personne 
	(
	id_personne integer primary key, 
	nom			varchar(50), 
	prenom		varchar(50)
	);

create table gardien 
	(
	id_personne	integer 	primary key references personne (id_personne), 
	date_entree_service 	date, 
	id_cop	integer not null references copropriete(id_cop)
	);

create table proprietaire 
	(
	id_personne integer references personne (id_personne) primary key, 
	adresse		varchar(100), 
	cp				char(5), 
	ville			varchar(50)
	);

create table type_lot 
	(
	id_type_lot integer primary key, 
	libelle		 varchar(30)
	);

create table lot 
	(
	id_cop	integer not null references copropriete (id_cop), 
	numero_lot	 integer not null, 
	id_type_lot	integer not null references type_lot (id_type_lot),
	id_personne	integer not null references proprietaire (id_personne),
	localisation varchar(100), 
	primary key (id_cop,	numero_lot)
	);

-- Partie comptabilité

create table chapitre 
	(
	id_cha	integer primary key, 
	libelle varchar(200)
	);
	
create table compte 
	(
	id_compte	integer primary key, 
	libelle		varchar(200), 
	id_cha		integer not null references chapitre (id_cha)
	);
		
create table fournisseur 
	(
	id_four	integer primary key, 
	nom		varchar(50), 
	adresse	varchar(100), 
	cp			char(5), 
	ville		varchar(50), 
	telephone	varchar(15), 
	telecopie 	varchar(15) 
	);

create table depense 
	(
	id_depense 	integer primary key, 
	libelle		varchar(200), 
	date			date, 
	montant		numeric(9, 2), 
	id_compte	integer not null references compte (id_compte), 
	id_four		integer references fournisseur (id_four), 
	id_cop		integer not null  references copropriete(id_cop)
	);

create table cle_repartition 
	(
	id_cop		integer not null, 
	numero_lot 	integer not null, 
	id_cha		integer not null references chapitre (id_cha), 
	tantiemes	integer not null, 
	primary key (id_cop, numero_lot, id_cha),
	foreign key (id_cop, numero_lot) references lot (id_cop, numero_lot)
	);

commit;
:ugeek:

Répondre