Newsgroup: it.comp.appl.access
Titolo: Problema di Progettazione

Salve, questa č la prima volta che posto su questo ng, il mio problema
riguarda piů che altro il modo di impostare un certo lavoro in access.
In pratica ho una tabella che elenca tutti i lavori svolti con vaari
attributi (tipo la data di inizio il tempo previsto per il
completamento, costi vari...). Questi lavori sono svolti da gruppi di
persone. Volevo rappresentare questa situazione in access in modo per
esempio da poter sapere ad esempio da chi č stato svolto un certo
lavoro oppure in quale progetto sta partecipando una certa persona.
Spero di essere riuscito a spiegare bene la situazione.
bye, insane79
That is not dead which can eternal lie, 
And with strange aeons even death may die
---- Abdul Alhazred, Al Azif 700 d.C. --

 Spero di essere riuscito a spiegare bene la situazione.
La situazione e' chiara, ma la domanda qual e'?
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

La situazione e' chiara, ma la domanda qual e'?
Che non so come metterle in relazione. Ho pensato di inserire una
copia del progetto per ogni persona che bi ha partecipato, ma in
questo modo in db diventa enorme.


 questo modo in db diventa enorme.
Che intendi con "copia del progetto?
Se si tratta di file puoi creare delle sottodirectory e inserire nel db solo
i path dei vari progetti.


Che intendi con "copia del progetto?
Allora in una tabella ci sono tutti i progetti (in corso e completati)
poi ho un altra tabella dove ci sono dei dipendenti.
Ora un progetto può essere assegnato ad uno o + dipendenti.
Il mio problema è che non so in che modo inserire nella tabella dei
progetti le persone che vi partecipano (che non sono in numero fisso).
La soluzione che avevo descritto prima era questa: ogni record
progetto viene replicato nella tabella tane volte quante sono le
persone che vi partecipano, ma mi sembra una soluzione pesante in
termini di dimensioni.
Quello che poi vorrei fare è questo: in base ad unn certo progetto
trovare le persone che vi partecipano oppure in base ad unna certa
persona sapere a quali progetti sta partecipando oppure quelli ai
quali ha partecipato.


 bye, insane79
Da quello che ho capito hai due tabelle, una per i progetti del tipo:
TblProgetti
IdProgetto  (chiave primaria)
.....
.....
ed una legata ai dipendenti:
TblDipendenti
IdDipendente (chiave primaria)
.....
.....
Se un dipendente partecipa contemporaneamente a piu' progetti ed un singolo
progetto e' contemporaneamente assegnato a piu' dipendenti le due tabelle
sono relazionate con una realazione MOLTI a MOLTI, che puo' essere
rappresentata attraverso una terza tabella in cui siano presenti le due
chiavi primarie delle tabelle in relazione:
TblAssegnamenti
IdProgetto
IdDipendente
DataInizioAssegnamento
DataFine Assegnamento     da gestire come vuoi.
Ciao
--
Andrea

 quali ha partecipato.
Il tuo e' il problema che sta alla base dell'invenzione dei database
relazionali, ossia e' per questo che i database relazionali (Access e' uno
di questi) sono stati inventati.
La relazione e' una caratteristica (o chiave) che lega tra loro due insiemi
di dati omogenei (o tabelle). Vedi Entita'/Relazioni su un testo
specializzato.
Le relazioni che legano tra loro le tabelle possono essere di tre tipi
fondamentali:
1 a 1 (ad ogni elemento della prima tabella corrisponde uno ed un solo
elemento della seconda)
1 a molti (ad ogni elemento della prima tab corrispondono nessuno, uno o
molti elementi della seconda)
molti a molti (come sopra ma anche viceversa.)
Nella fattispecie a te serve una relazione molti a molti che viene
generalmente realizzata sfruttando una terza tabella di appoggio che metta
in relazione, di volta in volta, un elemento della prima tab con uno della
seconda.
Fammi sapere se la cosa non ti e' chiara.


 wrote:
Grazie ad entrambi per le risposte. Ho capito la strada da seguire per
realizzare la cosa. 
Avrei un'altra domanda... in access so realizzare una maschera per
"riempiere" una tabella, in questo caso se uso una maschera per
riempire la tabella progetti come faccio ad aggiornare di conseguenza
la terza tabella di appoggio????


 la terza tabella di appoggio????
Intanto ti suggerisco l'uso dell'integrita' referenziale con aggiornamenti a
catena (cosi' eviti che modifiche della chiave in una tabella alterino le
relazioni).
La terza tabella puoi gestirla con una sua propria maschera oppure dalla
maschera dei Progetti (o viceversa degli addetti) in cui farai in modo di
poter selezionare, per il progetto visualizzato, gli addetti relativi.
Sto restando sul vago, lo so, ma non e' per male, e' per l'ora. Se domani ho
tempo mi spiego meglio.
