|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Aiutatemi con Access
Dovrei creare un piccolo database con access ma siccome non l'ho mai usato mi sono bloccato a metà:
prima entità: autori(nome data e luogo di nascita, data e luogo di morte) seconda entità: pubblicazioni(titolo, data e luogo di edizione, argomento) Devo fare un'associazione che chiamerò "contatti" tra ogni autore e quelli con cui ha collaborato. Poi devo fare 2 query: 1 - dato un autore devo elencare gli atri con cui a collaborato che non hanno pubblicato opere dello stesso argomento 2 - data l'età e l'argomento devo elencare gli autori che si sono occupati di quell'argomento e sono morti in età minore a quella specificata Io mi sono bloccato tra chiavi primarie, relazioni, etc..., senza contare che nelle query non so come definire le espressioni. Vi prego di aiutarmi, anche perchè è piuttosto urgente, vi pago da bere!!! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
UP
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Vi prego sto impazzendo
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Dai raga non posso credere che nessuno di voi espertisssssssimi (mi sto arruffianando un pò
![]() ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Cioè ma rispondete a tutti su access tranne che a me, e che vi ho fatto
![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dipende da come vuoi considerare il dominio di Autori...
Può esistere un autore con lo stesso nome, stessa data di nascita e stessa data di morte ? In pratica sì... Quindi dovresti aggiungere un utileriore campo identificativo (ID) che puoi definire di tipo Incremento...e deve essere chiave primaria... Se supponi che non possano esistere esistere autori aventi lo stesso nome, la stessa data di nascita e la stessa data di morte la relazione è tutta chiave... Se supponi che non esistano autori con lo stesso nome allora nome è la chiave primaria... Stesso discorso per le pubblicazioni... Se lo dovessi fare io metterei sia un campo ID su Autori che su Pubblicazioni... Autori : IDAutore Incremento, Intero Lungo, Chiave primaria Nome Testo(255) DataNascita Data (solo data) DataMorte Data (solo data) Pubblicazioni : IDPubblicazione Incremento, Intero Lungo, Chiave primaria Titolo Testo(255) DataEdizione Data (solo data) LuogoEdizione Testo(255) Argomento Testo(255) Se una pubblicazione può avere più di un autore farei una cosa del genere che definisce anche i "Contatti"...come li chiami tu... Partecipazioni : IDAutore Intero lungo IDPubblicazione Intero lungo IDAutore, IDPubblicazione Chiave primaria |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Quote:
Grazie prima di tutto di essere intervenuto. Allora, le tabelle le ho fatte. Il problema è che l'associazione "contatti" non si riferisce a collaborazioni sulle opere ma anche per esempio se un autore è stato allievo di un altro. Io ho messo autori e opere in associazione con contatti (vedi allegato) il problema è che così è solo un'associazione relativa all'opera e non contempla il caso che gli autori abbiano avuto contatti al di fuori della scrittura del libro. Le Query poi proprio non riesco a capirci un'acca. thanx ![]() |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora...ho visto che non ci possono essere autori con los tesso nome e pbblicazioni con lo stesso titolo...
Che significa quel campo "Contatti" ? Per riolvere il problema dei contatti al di fuori della pubblicazione...potresti creare una tabella Contatti in cui in ogni tupla ci sono due autori che hannoa vuto contatti... Il roblema è che la tabella potrebbe presentare anche ridondanza visto che, nel caso ceh due autori si chiamino Tizio e Caio...(Tizio, Caio) è diverso da (Caio, Tizio), mentre in realtà questa relazione dovrebbe essere descritta da una unica tupla... Altrimenti potresti fare un cosa un po' brutta dal punto di vista "stilistico" ma che sicuramente descrive pienamente la realtà... Due tabelle : IDGruppo(chiave), MotivoContatto Autore, IDGruppo (la chiave è tutta la tabella) In questo modo allo stesso contatto possono partecipare più di un autore... |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho modificato il mio post precedente...dacci un'occhiata...
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ah...in realtà se MotivoContatto non è una informazione rilevante puoi eliminare la prima tabella e lasciare solo l'ultima...
Per sapere ad esempio con quali autori è in contatto ogni singolo autore puoi fare una query del genere : SELECT A.Autore AS Autore, B.Autore AS Contatto FROM Contatti AS A, Contatti AS B WHERE A.IDGruppo=B.IDGruppo And A.Autore<>B.Autore ORDER BY A.Autore; |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Quote:
|
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Un esempio :
Autore IDGRuppo Tizio 1 Caio 1 Sempronio 1 Pippo 2 Pluto 2 Pippo è in contatto con Pluto...Tizio è in contatto sia con Caio che con Sempronio e anche Caio è in contatto con Sempronio... |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Ok e metti che tizio si8a in contatto con caio e con pluto, come viene?
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Tizio 1
Caio 1 Sempronio 1 Pippo 2 Pluto 2 Tizio 3 Pluto 3 Sai già che Tizio è in contatto con Caio... Se vuoi fare tutto da zero : Tizio 1 Caio 1 Tizio 2 Pluto 2 Comunque se vuoi che la relazione di contatto sia solo binaria, la prima tabella diventa : Tizio 1 Caio 1 Tizio 4 Sempronio 4 Sempronio 5 Caio 5 Pippo 2 Pluto 2 Tizio 3 Pluto 3 |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Dec 1999
Città: Firenze
Messaggi: 1332
|
Ok vedo che ne esce, mi sa che sarà una lunga notte!
![]() ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:46.