Files
scouthub/scouthub-attivita-be/DDL/1-creazioneDB.sql
T

241 lines
8.3 KiB
SQL

-- **************************************************** stato_attivita
create table stato_attivita
(
id varchar(2) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** tipo_categoria
create table tipo_categoria
(
id varchar(2) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** tipo_paragrafo
create table tipo_paragrafo
(
id varchar(10) not null primary key,
nome varchar(250) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** attivita
create table attivita
(
id int not null primary key auto_increment,
nome varchar(250) not null,
autore varchar(250) not null,
padre int null,
stato varchar(2) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_attivita_attivita foreign key (padre) references attivita (id),
constraint fk_attivita_stato_attivita foreign key (stato) references stato_attivita (id)
);
create index fk_attivita_attivita_idx on attivita (padre);
create index fk_attivita_stato_attivita_idx on attivita (stato);
-- **************************************************** branca
create table branca
(
id int not null primary key auto_increment,
nome varchar(250) not null,
inizio_eta int null,
fine_eta int null,
colore varchar(10) null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** branca_attivita
create table branca_attivita
(
attivita_id int not null,
branca_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, branca_id),
constraint fk_branca_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_branca_attivita_branca foreign key (branca_id) references branca (id)
);
create index fk_branca_attivita_attivita_idx on branca_attivita (attivita_id);
create index fk_branca_attivita_branca_idx on branca_attivita (branca_id);
-- **************************************************** periodo_anno
create table periodo_anno
(
id int not null primary key auto_increment,
nome varchar(250) not null,
inizio_mese int null,
fine_mese int null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** periodo_anno_attivita
create table periodo_anno_attivita
(
attivita_id int not null,
periodo_anno_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, periodo_anno_id),
constraint fk_periodo_anno_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_periodo_anno_attivita_periodo_anno foreign key (periodo_anno_id) references periodo_anno (id)
);
create index fk_periodo_anno_attivita_attivita_idx on periodo_anno_attivita (attivita_id);
create index fkperiodo_anno_attivita_periodo_anno_idx on periodo_anno_attivita (periodo_anno_id);
-- **************************************************** paragrafo
create table paragrafo
(
id int not null primary key auto_increment,
attivita_id int not null,
corpo varchar(500) not null,
autore varchar(250) not null,
tipo varchar(10) not null,
ordine int not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_paragrafo_tipo_paragrafo foreign key (tipo) references tipo_paragrafo (id),
constraint fk_paragrafo_attivita foreign key (attivita_id) references attivita (id)
);
create index fk_paragrafo_tipo_paragrafo_idx on paragrafo (tipo);
-- **************************************************** categoria
create table categoria
(
id int not null primary key auto_increment,
nome varchar(250) not null,
padre int null,
tipo varchar(2) not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
constraint fk_categoria_categoria foreign key (padre) references categoria (id),
constraint fk_categoria_tipo_categoria foreign key (tipo) references tipo_categoria (id)
);
create index fk_categoria_categoria_idx on categoria (padre);
create index fk_categoria_tipo_categoria_idx on categoria (tipo);
-- **************************************************** categoria_attivita
create table categoria_attivita
(
attivita_id int not null,
categoria_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, categoria_id),
constraint fk_categoria_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_categoria_attivita_categoria foreign key (categoria_id) references categoria (id)
);
create index fk_categoria_attivita_attivita_idx on categoria_attivita (attivita_id);
create index fk_categoria_attivita_categoria_idx on categoria_attivita (categoria_id);
-- **************************************************** materiale
create table materiale
(
id int not null primary key auto_increment,
nome varchar(250) not null,
proprieta json,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null
);
-- **************************************************** materiale_attivita
create table materiale_attivita
(
attivita_id int not null,
materiale_id int not null,
proprieta json null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (attivita_id, materiale_id),
constraint fk_materiale_attivita_attivita foreign key (attivita_id) references attivita (id),
constraint fk_materiale_attivita_materiale foreign key (materiale_id) references materiale (id)
);
create index fk_materiale_attivita_attivita_idx on materiale_attivita (attivita_id);
create index fk_materiale_attivita_materiale_idx on materiale_attivita (materiale_id);
-- **************************************************** categoria_materiale
create table categoria_materiale
(
materiale_id int not null,
categoria_id int not null,
cancellato tinyint not null,
data_creazione datetime not null,
data_modifica datetime not null,
utente_modifica varchar(50) not null,
primary key (materiale_id, categoria_id),
constraint fk_categoria_materiale_categoria foreign key (categoria_id) references categoria (id),
constraint fk_categoria_materiale_materiale foreign key (materiale_id) references materiale (id)
);
create index fk_categoria_materiale_categoria_idx on categoria_materiale (categoria_id);
create index fk_categoria_materiale_materiale_idx on categoria_materiale (materiale_id);