PDA

View Full Version : Esercizio in access


American horizo
11-05-2004, 13:34
Non riesco a capire come realizzare tale database:

In una scuola si vuole realizzare un database per gestire il prestito di volumi presenti nella biblioteca di istututo. L'organizzazione si basa su schedari organizzati per titolo e per argomento. Ogni libro puo trattare più argomenti. Di certi volumi più richiesti, la biblioteca possiede più copie. Un utente puo richiedere più libri contemporaneamente ma non più copie dello stesso libro....

Premetto che non abbiamo ancora usato l'incapsulamento, quindi nessun codice in c++ o altro è richiesto, e non sono necessarie query o report.....

HELP

fabio_tarantino
11-05-2004, 13:48
Io farei così: ti scrivo direttamente le tabelle (lo schema ER te lo fai tu!)

Libro (codice, titolo, copie) //codice PK

Argomento (codice, testo) //codice PK

Poichè un libro può trattare più argomenti:

GenereLib (libro,argomento) //libro FK Libro(codice), argomento FK Argomento(codice)

Utente (codice, nome) //codice PK

Prestito (utente,libro) // utente FK di Utente(codice), libro FK di Libro(codice) utente e libro sono una chiave

Per il vincolo sul prestito devi imporre che la coppia (utente,libro) nella relazione Prestito sia una chiave! In questo modo un utente non può avere in prestito più copie dello stesso libro.

Infine devi mettere un trigger che ti controlli che se un libro è stato prestato x volte allora x<=Libro(copie) ogni qual volta vi è una richiesta di prestito.

American horizo
11-05-2004, 17:26
Si, ma tu non hai tenuto conto che una volta prestato un libro, deve essere restituito.....quindi non basta vedere quante volte è stato prestato per vedere se sono disponibili ancora copie....

American horizo
11-05-2004, 19:21
Ecco una prima versione del database
http://digilander.libero.it/American_horizon/Biblio.mdb

Ma c'è qualcosa che non quadra....in pratica sono riuscito a far in modo che per ogni libro possono essere assegnati + argomenti, infatti cliccando sul tasto "+" nella tabella libri, mi escono gli ID dei vari argomenti......Quello chenon riesco a capire, come faccio a far apparire invece degli ID, proprio il NOME dell'argomento ?
Cioè, mettiamo che Fantasy ha ID 1 .....Cliccando sul "+" del libro del signore degli anelli, mi esce 1, invece io voglio che esce scritto Fantasy ...

fabio_tarantino
12-05-2004, 10:44
Originariamente inviato da American horizo
Si, ma tu non hai tenuto conto che una volta prestato un libro, deve essere restituito.....quindi non basta vedere quante volte è stato prestato per vedere se sono disponibili ancora copie....

Invece ti sbagli perchè se un libro è stato restituito non risulta più nella tabella Prestito (perchè va cancellato da tale tabella) !!!!

Oppure, considerando come hai definito tu la relazione Prestito, un libro risulta restituito se l'attributo data_restituzione è non NULL!

Per quanto riguarda il tuo problema, puoi eliminare la colonna codice nella tabella Argomenti e rendere chiave primaria la colonna argomento!

ok?