Creazione database del tariffario forense | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 11 Posts di 3 Utenti.

12 Novembre, 2011 20:19 #1
duemme
Utente

duemme
Registrato: Nov, 2011
Posts: 2
Offline

Vorrei creare un database partendo dal tariffario forense ("http://www.consiglionazionaleforense.it/site/home/area-cittadino/calcolo-tariffe/documento1489.html").

Svolgo la pratica da avvocato, ma ho sempre coltivato l'interesse per l'informativa, la creazione di un database relativo alle tariffe forensi mi è parsa essere l'occasione per coniugare i due mondi.

Premesso che piacerebbe imparare a progettare database, questa mi è sembrata una buona palestra per incominciare.

La principale difficoltà che ho riscontrato al momento è riuscire ad immaginare/progettare la struttura del database.

Come potete notare dall'estratto che allego di seguito:

il tariffario forense si articola in varie voci, principalmente in onorari e diritti.

Prendiamo per semplicità gli onorari, questi si articolano a loro volta in:

I. Organo davanti a cui pende il giudizio
A. valore della causa
1. descrizione dell'attività
a. tariffa minima e tariffa massima

Vorrei confrontarmi con voi per capire qual è la struttura migliore da dare al database, quali sono secondo voi le tabelle che devono essere create, quali i campi per ogni tabella.

Ultima modifica 12 Novembre, 2011 20:22 di duemme

14 Novembre, 2011 16:59 #2
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao e Benvenuto,

va benissimo secondo me però raggiungiamo il risultato migliore se la progettazione della base dati la fai tu e io ti aiuto a correggerla non pensi ?

altrimenti non hai modo di fare un pò di esperienza, la cosa che ti posso iniziare a suggerire, pensa a quali sono i concetti base di questo tariffario... sei sulla strada giusta nell'ultima parte del post hai centrato già il punto.

che ne pensi ?


Un tempo ero algweb ora sono g2d

14 Novembre, 2011 19:36 #3
duemme
Utente

duemme
Registrato: Nov, 2011
Posts: 2
Offline

Mi pare corretto. Nei prossimi giorni provo a buttare giù un modello.
Ti anticipo che il passaggio successivo sarebbe quello di creare un'ulteriore tabella nella quale tenere traccia delle attività svolte mettendo in relazione la singola attività con la voce del tariffario. tiene presente che più attività possono corrispondere ad una sola voce del tariffario (ossia non generano una duplicazione in parcella di quella singola voce), mentre altre attività ogni volta che vengono eseguite generano una duplicazione della singola voce del tariffario.

Per farti capire:

la voce "studio della controversia" comprende varie attività tra cui la lettura dei documenti e le ricerche giurisprudenziali;

la voce "partecipazione all'udienza" deve essere indicata per ogni udienza a cui si ha partecipato.

Spero di essere stato chiaro

15 Novembre, 2011 09:11 #4
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Facciamo così obiettivo 1, indentifica con un eleco tutti i concetti che sono alla base del tariffario


Un tempo ero algweb ora sono g2d

19 Novembre, 2011 11:46 #5
Febo
Utente

Febo
Registrato: Oct, 2011
Posts: 11
Offline

io farei così:

table dei titoli
table dei valori "da" "a"
table delle voci es. "atto di intervento"
table relazione molti a molti con le suddette table più campi "minimo" "massimo" e quant'altro

19 Novembre, 2011 21:11 #6
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Facciam così, non commento .... fammi vedere le tabelle ... proprio le create table....


Un tempo ero algweb ora sono g2d

20 Novembre, 2011 06:32 #7
Febo
Utente

Febo
Registrato: Oct, 2011
Posts: 11
Offline

grossolanamente potrebbe essere così:

  1SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  2SET time_zone = "+00:00";
  3
  4
  5/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  6/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  7/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  8/*!40101 SET NAMES utf8 */;
  9
 10--
 11-- Database: `letariffe`
 12--
 13
 14-- --------------------------------------------------------
 15
 16--
 17-- Struttura della tabella `da_a`
 18--
 19
 20CREATE TABLE IF NOT EXISTS `da_a` (
 21  `id_da_a` int(11) NOT NULL AUTO_INCREMENT,
 22  `da` double(15,3) NOT NULL DEFAULT '0.000',
 23  `a` double(15,3) DEFAULT '0.000',
 24  PRIMARY KEY (`id_da_a`)
 25) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
 26
 27--
 28-- Dump dei dati per la tabella `da_a`
 29--
 30
 31INSERT INTO `da_a` (`id_da_a`, `da`, `a`) VALUES
 32(1, 600.010, 1600.000);
 33
 34-- --------------------------------------------------------
 35
 36--
 37-- Struttura della tabella `eventi`
 38--
 39
 40CREATE TABLE IF NOT EXISTS `eventi` (
 41  `id_evento` int(11) NOT NULL AUTO_INCREMENT,
 42  `NMID_FK` int(11) NOT NULL DEFAULT '0',
 43  `data_evento` date DEFAULT NULL,
 44  `descrizione` varchar(50) DEFAULT '---',
 45  PRIMARY KEY (`id_evento`),
 46  KEY `Ref_04` (`NMID_FK`)
 47) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
 48
 49--
 50-- Dump dei dati per la tabella `eventi`
 51--
 52
 53INSERT INTO `eventi` (`id_evento`, `NMID_FK`, `data_evento`, `descrizione`) VALUES
 54(1, 1, '2011-11-11', 'Sig.Rossi');
 55
 56-- --------------------------------------------------------
 57
 58--
 59-- Struttura della tabella `tabelle`
 60--
 61
 62CREATE TABLE IF NOT EXISTS `tabelle` (
 63  `id_tabella` int(11) NOT NULL AUTO_INCREMENT,
 64  `nome_tabella` varchar(50) DEFAULT '----',
 65  `descrizione` varchar(50) DEFAULT '---',
 66  PRIMARY KEY (`id_tabella`)
 67) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
 68
 69--
 70-- Dump dei dati per la tabella `tabelle`
 71--
 72
 73INSERT INTO `tabelle` (`id_tabella`, `nome_tabella`, `descrizione`) VALUES
 74(1, 'TABELLA A', 'ONORARI GIUDIZIALI');
 75
 76-- --------------------------------------------------------
 77
 78--
 79-- Struttura della tabella `tariffario`
 80--
 81
 82CREATE TABLE IF NOT EXISTS `tariffario` (
 83  `NMID` int(11) NOT NULL AUTO_INCREMENT,
 84  `id_da_a_FK` int(11) NOT NULL DEFAULT '0',
 85  `id_tipo_FK` int(11) NOT NULL DEFAULT '0',
 86  `voce` varchar(50) DEFAULT '---',
 87  `minimo` int(11) DEFAULT '0',
 88  `massimo` int(11) DEFAULT '0',
 89  `coeff_minimo` int(11) DEFAULT '0',
 90  `coeff_massimo` int(11) DEFAULT '0',
 91  PRIMARY KEY (`NMID`),
 92  KEY `Ref_02` (`id_da_a_FK`),
 93  KEY `Ref_03` (`id_tipo_FK`)
 94) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
 95
 96--
 97-- Dump dei dati per la tabella `tariffario`
 98--
 99
100INSERT INTO `tariffario` (`NMID`, `id_da_a_FK`, `id_tipo_FK`, `voce`, `minimo`, `massimo`, `coeff_minimo`, `coeff_massimo`) VALUES
101(1, 1, 1, '2) Studio della controversia', 55, 145, 0, 0);
102
103-- --------------------------------------------------------
104
105--
106-- Struttura della tabella `tipi`
107--
108
109CREATE TABLE IF NOT EXISTS `tipi` (
110  `id_tipo` int(11) NOT NULL AUTO_INCREMENT,
111  `id_tabella_FK` int(11) NOT NULL DEFAULT '0',
112  `Descrizione` varchar(50) DEFAULT '---',
113  PRIMARY KEY (`id_tipo`),
114  KEY `Ref_05` (`id_tabella_FK`)
115) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
116
117--
118-- Dump dei dati per la tabella `tipi`
119--
120
121INSERT INTO `tipi` (`id_tipo`, `id_tabella_FK`, `Descrizione`) VALUES
122(1, 1, 'I – CAUSE AVANTI AI GIUDICI DI PACE');
123
124--
125-- Limiti per le tabelle scaricate
126--
127
128--
129-- Limiti per la tabella `eventi`
130--
131ALTER TABLE `eventi`
132  ADD CONSTRAINT `Ref_04` FOREIGN KEY (`NMID_FK`) REFERENCES `tariffario` (`NMID`) ON DELETE NO ACTION ON UPDATE NO ACTION;
133
134--
135-- Limiti per la tabella `tariffario`
136--
137ALTER TABLE `tariffario`
138  ADD CONSTRAINT `Ref_02` FOREIGN KEY (`id_da_a_FK`) REFERENCES `da_a` (`id_da_a`) ON DELETE NO ACTION ON UPDATE NO ACTION,
139  ADD CONSTRAINT `Ref_03` FOREIGN KEY (`id_tipo_FK`) REFERENCES `tipi` (`id_tipo`) ON DELETE NO ACTION ON UPDATE NO ACTION;
140
141--
142-- Limiti per la tabella `tipi`
143--
144ALTER TABLE `tipi`
145  ADD CONSTRAINT `Ref_05` FOREIGN KEY (`id_tabella_FK`) REFERENCES `tabelle` (`id_tabella`) ON DELETE NO ACTION ON UPDATE NO ACTION;
146
147/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
148/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
149/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Ultima modifica 20 Novembre, 2011 07:39 di Febo

22 Novembre, 2011 19:20 #8
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Allora scusami se non ho risposto subito ma ci tenevo a essere breve e preciso e non avevo ancora avuto il tempo.

I nomi delle tabelle sono poco significativi e questa sembra una banalità ma è una cosa fondamentale, chiamare una tabella "tabella" non è un bel vedere
CONSTRAINT e FK non ti servono ... andiamo per gradi ...
Gli eventi da dove sono usciti ? mi sono perso qualcosa ?

Ti faccio una proposta analizzala e prova a dirmi che ne pensi, ovviamente per complicare la cosa non mettero i nomi alle tabelle in modo che tu possa scegliere in nomi adatti

(id, titolo)
In questa tabella vorrei inserire tutte le tipologie di voci (quelle che hanno il numeretto tra parentesi (es. Studio della controversia)

In questa tabella vorrei inserire il range economico
(id, range)

In questa tabella vorrei inserire le tariffe
(id, min, max, range, titolo_id)

Spero di non essermi perso nulla in termini di logica del tariffario.

Che ne pensi ?


Un tempo ero algweb ora sono g2d

22 Novembre, 2011 19:21 #9
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Scusami se non ho risposto subito ma ci tenevo a essere breve e preciso e non avevo ancora avuto il tempo.

1I nomi delle tabelle sono poco significativi e questa sembra una banalità ma è una cosa fondamentale, chiamare una tabella "tabella" non è un bel vedere
2CONSTRAINT e FK non ti servono ... andiamo per gradi ... 
3Gli eventi da dove sono usciti ? mi sono perso qualcosa ?

Ti faccio una proposta analizzala e prova a dirmi che ne pensi, ovviamente per complicare la cosa non mettero i nomi alle tabelle in modo che tu possa scegliere in nomi adatti

(id, titolo)
In questa tabella vorrei inserire tutte le tipologie di voci (quelle che hanno il numeretto tra parentesi (es. Studio della controversia)

In questa tabella vorrei inserire il range economico
(id, range)

In questa tabella vorrei inserire le tariffe
(id, min, max, range, titolo_id)

Spero di non essermi perso nulla in termini di logica del tariffario.

Che ne pensi ?


Un tempo ero algweb ora sono g2d

Condividi su:

Loggati o Registrati per replicare