-- **************************************************** 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);