Newsgroup: it.comp.software.database
Titolo: Esempio di database pratiche

Ciao a tutti.
Sto cercando di imparare MySQL tramite un facile esercizio che potrebbe
essere utile a molti: un archivio pratiche.
Il concetto è quello classico dei Faldoni presenti in ufficio.
Ogni faldone contiene dei fascicoli, ha un numero proprio, potrebbe
avere un numero corrispondente ad un ordine di lavoro ed è posizionato
in una stanza in una certa posizione.
Ho definito la struttura "grossolana" in questo modo:
CREATE DATABASE archivio;
USE archivio;
CREATE TABLE pratica
(
    faldone     CHAR(6) NOT NULL PRIMARY KEY,
    odl         VARCHAR(10),
    descrizione VARCHAR(100),
    stanza      CHAR(2),
    posizione   CHAR(4)
);
CREATE TABLE fascicolo
(
    faldone     CHAR(6) NOT NULL PRIMARY KEY,
    descizione  VARCHAR(100),
    note        VARCHAR(100)
);
CREATE TABLE odl
(
    odl         VARCHAR(10),
    soggetto    VARCHAR(50),
    titolo      VARCHAR(100),
    controparte VARCHAR(50)
);
Il mio problema ora è collegare correttamente ed indicizzare il tutto.
In effetti i faldoni non hanno mai una numerazione vuota, hanno un
numero progressivo, non possono avere il numero_faldone (faldone) vuoto,
 ed è chiave primaria.
Nella tabella fascicolo, ci possono essere più fascicoli con lo stesso
numero faldone, visto che ogni faldone contiene molte cartelline
(fascicoli).
A questo punto dovrei poter cercare le pratiche sia tramite parole
chiave presenti in descrizione->fascicolo, note->fascicolo,
descrizione->pratica, soggetto-titolo-controparte->odl).
Scusate la mia imbranataggine ma nessuno nasce imparato :-)
Non so come muovermi...
La mia esperienza risale a DBIII di 20 anni fa, circa.
Ora sto provando a fare queste operazioni "manualmente" in mysql, ma poi
dovrei implementare una piccola interfaccia php. Credo sia il metodo più
giusto/semplice per collegarsi ed interrogare il db in una piccola LAN.
Potete aiutarmi?
Prometto che renderò pubblico il lavoro...
Grazie
Giulio

 Giulio
Per favore datemi qualche indicazione su come muovermi... sono proprio
bloccato perché non ho idea di come muovermi.
Non voglio che mi risolviate il problema, ma mi servono delle
indicazioni su come muovermi.
In particolare non mi è chiaro come e quali indici attivare, ed in
particolare ho indicato dei campi con nomi comuni nelle tabelle perché
sono i campi che collegano le tabelle tra loro.
grazie
Giulio

 (fascicoli).
Visto che hai messo faldone come PK, all'inserimento del secondo 
fascicolo nello stesso faldone, hai un errore di chiave duplicata.
Alla prossima.
	MAX

     MAX
Giulio

 	Forse dovrei inserire un numero fascicolo e renderlo chiave primaria?
Una curiosità: perchè faldone è un char(6) e non un numero? Comunque non 
credo debba essere un semplice numero progressivo, ma un progressivo 
"annuale" (tipo 155/2006, quindi composto da 2 numeri)
Comunque per il fascicolo io farei come segue, se vuoi che abbia una 
numerazione "interna" al faldone (tipo fascicolo 1 del faldone 2, 
fascicolo 1 del faldone 3, ecc..):
CREATE TABLE fascicolo
(
     fascicolo   CHAR(6) NOT NULL ,
     faldone     CHAR(6) NOT NULL ,
     descizione  VARCHAR(100),
     note        VARCHAR(100),
     PRIMARY KEY (fascicolo, faldone)
);
Altrimenti, se il fascicolo ha una numerazione indipendente (ma non 
credo sia questo il caso):
CREATE TABLE fascicolo
(
     fascicolo   CHAR(6) NOT NULL PRIMARY KEY,
     faldone     CHAR(6)
......
);
Inoltre, in entrambi i casi, sarebbe bene marcare "faldone" come Foreign 
Key
IMHO, e dal basso delle mie conoscenze
Ciao
Alessandro

Alessandro ha scritto:

vedi se ti può essere di qualche aiuto
http://web.tiscali.it/ozanam/opens.html
 , purtroppo lavorando da solo
non ho potuto fare molto.
Ciao
Ozanam

 
Ciao,
nell'ordine :
www.linuxlex.org
www.elawoffice.it
At next time.
	MAX