Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-05-2004, 13:34   #1
American horizo
Senior Member
 
L'Avatar di American horizo
 
Iscritto dal: Aug 2003
Città: Castellammare di Stabia (Na)
Messaggi: 2046
Esercizio in access

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
American horizo è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2004, 13:48   #2
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
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.
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2004, 17:26   #3
American horizo
Senior Member
 
L'Avatar di American horizo
 
Iscritto dal: Aug 2003
Città: Castellammare di Stabia (Na)
Messaggi: 2046
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 è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2004, 19:21   #4
American horizo
Senior Member
 
L'Avatar di American horizo
 
Iscritto dal: Aug 2003
Città: Castellammare di Stabia (Na)
Messaggi: 2046
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 ...
American horizo è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2004, 10:44   #5
fabio_tarantino
Member
 
Iscritto dal: Nov 2002
Messaggi: 160
Quote:
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?
fabio_tarantino è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:31.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v