-- ====================================================================================================
-- Fichier      : ddl_ruche.sql
-- Auteur       : PASQUIER Léo
-- Date         : 10/12/2020
-- Base         : ruche
-- Rôle         : Créer toutes les relations de la base et leurs contraintes.
-- Projet       : Ruche
-- Résultat     : ddl_ruche.out
-- ====================================================================================================

SPOOL ../utilitaires/ddl_ruche.out;

PROMPT Création de la table APICULTEUR :;
CREATE TABLE APICULTEUR (
    IDAPI NUMBER(4) NOT NULL,
    NOMAPI VARCHAR2(40) NOT NULL,
    PRENOMAPI VARCHAR2(40) NOT NULL,
    TELAPI VARCHAR2(10) NOT NULL,
    MAILAPI VARCHAR2(80) NULL,
    ADRAPI VARCHAR2(255) NOT NULL,
    CONSTRAINT PK_APICULTEUR PRIMARY KEY (IDAPI),
    CONSTRAINT UNK_NOMAPI_PRENOMAPI UNIQUE (NOMAPI,PRENOMAPI),
    CONSTRAINT UNK_MAILAPI UNIQUE (MAILAPI)
);

PROMPT Création de la table RUCHER :;
CREATE TABLE RUCHER (
    IDRUCHER NUMBER(4) NOT NULL,
    TYPEMIEL CHAR(6) NOT NULL,
    CONSTRAINT PK_RUCHER PRIMARY KEY (IDRUCHER),
    CONSTRAINT CHK_TYPEMIEL CHECK (TYPEMIEL IN('acacia', 'colza', 'sapin', 'thym'))
);

PROMPT Création de la table RUCHE :;
CREATE TABLE RUCHE (
    IDRU NUMBER(4) NOT NULL,
    NBCADRE NUMBER(2) NOT NULL,
    IDAPI NUMBER(4) NOT NULL,
    IDRUCHER NUMBER(4) NOT NULL,
    CONSTRAINT PK_RUCHE PRIMARY KEY (IDRU),
    CONSTRAINT CHK_NBCADRE CHECK (NBCADRE > 0)
);

PROMPT Création de la table RECOLTE :;
CREATE TABLE RECOLTE (
    IDRU NUMBER(4) NOT NULL,
    DATEREC DATE NOT NULL,
    MASSE NUMBER(4,3) NOT NULL,
    CONSTRAINT PK_RECOLTE PRIMARY KEY (IDRU, DATEREC),
    CONSTRAINT CHK_MASSE CHECK (MASSE > 0)
);

SET ECHO ON;

DESC APICULTEUR
DESC RUCHER
DESC RUCHE
DESC RECOLTE

SET ECHO OFF;

SPOOL OFF;