-- ================================================================ -- -- ================================================================ -- -- Nom de la base : MARBEN 3.2 -- -- Date de création : 28/09/2012 -- -- Copyright : Nicolas GABARRON -- -- SGBD : PostgreSQL / PostGIS -- -- Description : Script de création de la base de données -- -- ================================================================ -- -- ================================================================ -- -- CREATE DATABASE MARBEN -- ============================================================ -- -- ============================================================ -- -- -- -- DONNEES SPATIALES -- -- -- -- ============================================================ -- -- ============================================================ -- -- Table : SECTOR -- (Liste des secteur Rebent (et uniquement Rebent)) CREATE TABLE sector ( sct_id SERIAL NOT NULL, sct_order INTEGER NOT NULL, sct_name VARCHAR(50) NOT NULL, sct_comment VARCHAR(500) , CONSTRAINT pk_sector PRIMARY KEY (sct_id) ); CREATE UNIQUE INDEX idx_sector_id ON sector (sct_id ASC); CREATE UNIQUE INDEX idx_sector_name ON sector (sct_name ASC); -- Table : SITE -- (Liste des sites étudiés) CREATE TABLE site ( st_id SERIAL NOT NULL , st_name VARCHAR(50) NOT NULL , st_actif BOOLEAN NOT NULL DEFAULT TRUE, st_sector INTEGER , st_comment VARCHAR(500) , CONSTRAINT pk_site PRIMARY KEY (st_id) ); CREATE UNIQUE INDEX idx_site_id ON site (st_id ASC); CREATE UNIQUE INDEX idx_site_name ON site (st_name ASC); -- Table : POINT -- (Liste des points étudiés) CREATE TABLE point ( pt_id SERIAL NOT NULL , pt_name VARCHAR(50) NOT NULL , pt_actif BOOLEAN NOT NULL DEFAULT TRUE, pt_x VARCHAR(15) , pt_y VARCHAR(15) , pt_site INTEGER , pt_comment VARCHAR(500) , CONSTRAINT pk_point PRIMARY KEY (pt_id) ); CREATE UNIQUE INDEX idx_point_id ON point (pt_id ASC); CREATE UNIQUE INDEX idx_point_name ON point (pt_name ASC); -- CREATE UNIQUE INDEX idx_point_geo ON point (pt_x, pt_y); -- obligé de virer cette index unique car plusieurs point ont les même coordonnées (Ex Meaben maerl 1, 2, 3 SELECT AddGeometryColumn('', 'public', 'point', 'pt_geo', 4326, 'POINT', 2 ); -- ============================================================ -- -- ============================================================ -- -- -- -- SOURCES DE DONNEES (STRATEGIE SPATIALE) -- -- -- -- ============================================================ -- -- ============================================================ -- -- Table : THEME -- (Liste des thématiques d'études (bancs de maërl, herbiers, ...) CREATE TABLE theme ( thm_code VARCHAR(2) NOT NULL, thm_name VARCHAR(50) NOT NULL, thm_comment VARCHAR(500) , CONSTRAINT pk_theme PRIMARY KEY (thm_code) ); CREATE UNIQUE INDEX idx_theme_code ON theme (thm_code ASC); CREATE UNIQUE INDEX idx_theme_name ON theme (thm_name ASC); -- Table : PERSON -- (Liste des personnes concernées par les programmes de recherche, que ce soit -- en tant que responsable ou en tant que participant aux campagnes d'échantillonnage) CREATE TABLE person ( prs_id SERIAL NOT NULL, prs_name VARCHAR(20) NOT NULL, prs_surname VARCHAR(20) NOT NULL, prs_organism VARCHAR(50) NOT NULL, prs_status VARCHAR(30) NOT NULL, prs_missions VARCHAR(150) , prs_address VARCHAR(100) , prs_cp VARCHAR(5) , prs_town VARCHAR(30) , prs_phone VARCHAR(14) , prs_mail VARCHAR(50) , prs_comment VARCHAR(500) , CONSTRAINT pk_person PRIMARY KEY (prs_id) ); CREATE UNIQUE INDEX idx_person_id ON person (prs_id ASC); -- Table : SOURCE -- (Liste des programmes de recherche dont sont issues les données) CREATE TABLE data_source ( src_id SERIAL NOT NULL, src_name VARCHAR(75) NOT NULL, src_initials VARCHAR(10) , src_desc VARCHAR(500) , src_date DATE , src_resp INTEGER , src_comment VARCHAR(500) , CONSTRAINT pk_data_source PRIMARY KEY (src_id) ); CREATE UNIQUE INDEX idx_source_id ON data_source (src_id ASC); CREATE UNIQUE INDEX idx_source_name ON data_source (src_name ASC); CREATE UNIQUE INDEX idx_source_initials ON data_source (src_initials ASC); -- ============================================================ -- -- ============================================================ -- -- -- -- TAXONOMIE ET REGROUPEMENTS D'ESPECES -- -- -- -- ============================================================ -- -- ============================================================ -- -- Table : FCTNAL_GR CREATE TABLE fctnal_gr ( fgr_id SERIAL NOT NULL, fgr_name VARCHAR(100) NOT NULL, fgr_desc VARCHAR(255) , fgr_comment VARCHAR(500) , CONSTRAINT pk_fctnal_gr PRIMARY KEY (fgr_id) ); CREATE UNIQUE INDEX idx_fgr_id ON fctnal_gr (fgr_id ASC); CREATE UNIQUE INDEX idx_fgr_name ON fctnal_gr (fgr_name ASC); -- Table : AUTHORITY CREATE TABLE authority ( ath_id SERIAL NOT NULL, ath_name VARCHAR(85) NOT NULL, ath_comment VARCHAR(500) , CONSTRAINT pk_authority PRIMARY KEY (ath_id) ); CREATE UNIQUE INDEX idx_authority_id ON authority (ath_id ASC); CREATE UNIQUE INDEX idx_authority_name ON authority (ath_name ASC); -- Table : TAXONOMY CREATE TABLE taxonomy ( sp_aphia INTEGER NOT NULL , sp_bg INTEGER NOT NULL UNIQUE , sp_bd INTEGER NOT NULL UNIQUE , sp_niveau INTEGER NOT NULL , sp_rank VARCHAR(25) NOT NULL , sp_lib VARCHAR(50) NOT NULL , sp_comment VARCHAR(500) , CONSTRAINT pk_taxonomy PRIMARY KEY (sp_aphia), CONSTRAINT chk_bornes CHECK (sp_bg