113 messaggi dal 23 aprile 2002
Ciao a tutti,
ho un problema su come organizzare un piccolo Database in Access.
Devo realizzare un DB per archiviare tutti i presenti ad un convegno.

Dovrò registrare solo il NOME, COGNOME e il TELEFONO, qundi con una tabella "Invitato" me la cavo.
Ora il mio piccolo problema consiste in questo: ogni anno l'evento verrà riproposto e quindi molti dei precedenti invitati verranno appunto invitati (scusate la ripetizione) per la nuova edizione. Come faccio a tenere traccia delle edizioni a cui l'invitato X ha partecipato? Magari ha partecipato anche all'edizione 2001, 2002 e 2003 (esempio).

Devo aggiungere alla tabella "Invitato" un campo con la data di partecipazione oppure è meglio realizzare una tablella EDIZIONE per ogni nuova edizione?

Ciao e grazie in anticipo!
3.122 messaggi dal 16 maggio 2002
Tabella invitati:
Nome, Cognome, Telefono ed un campo univoco che distingua un invitato dall'altro (es. codice fiscale o, se non l'hai a disposizione, metti il solito intero autoincrementante) che metti come chiave.

Tabella edizioni:
Un solo campo (che sarà impostato chiave) che indica l'anno dell'edizione

Tabella partecipazioni:
Due campi, uno che si riferisce alla tabella invitati (con vincolo di FK su questa) e l'altro che si riferisce all'edizione (con vincolo di FK). La chiave di questa tabella è multipla, data da entrambi i campi.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
113 messaggi dal 23 aprile 2002
Grazie Raynor, mi hai dato proprio un bella spiegazione!
Scusa se rilancio con una nuova domanda, che cos'è un vincolo di FK?

Ciao e grazie mille!!!
3.122 messaggi dal 16 maggio 2002
FK sta per foreign key (quelle che access chiama "Relazioni"). Servono a mantenere l'integrità dei dati. Per crearle via codice sql si usa la parola riservata REFERENCES in fase di creazione delle tabelle.
In pratica, se un campo ha un vincolo di foreign key verso (ovvero referenzia) un'altra tabella (cioè verso una chiave di quest'altra tabella), in quel campo potrai scrivere solo valori che sono presenti nella tabella referenziata (o lasciare NULL se non è stata impostata la clausola NOT NULL).

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
113 messaggi dal 23 aprile 2002
Grazie di nuovo, ora o capito!

Ciao ;-)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.