Newsgroup: it.comp.appl.access
Titolo: Ridurre i Campi di una Tabella

Buongiorno a tutti!
Qualche giorno fa mi è stato suggerito di ridurre i campi di una
tabella (la chiameremo A).
In questa tabella c'era l'ID, Nome e Cognome dell'utente,
Telefono_Casa, Telefono_Ufficio, Cellulare, e-mail. Giustamente mi è
stato detto: se un domani ti chiedono di aggiungere il sito internet,
il cellulare aziendale o l'indirizzo skype, devi intervenire nella
struttura della tabella con tutte le conseguenze annesse. Perciò ho
tolto i campi tel, cell, mail, ho creato altre due tabelle che
chiameremo B e C. In B ho inserito un ID e un campo testo denominato
Tipo; in C ho inserito il campo ID, ID_Utente, ID_Tipo_Contatto e un
campo testo denominato Contenuto. Poi ho legato l'ID di A e l'ID di B
(relazione Uno) rispettivamente al campo ID_Utente e ID_Tipo_Contatto
della tabella C (relazione molti). Fin qui tutto bene. Bene anche la
maschera di inserimento: basta creare una sottomaschera Contatti e il
gioco è fatto.
Problema: molte stampe riportano alcuni dati dell'utente, tra i quali
il telefono, il cellulare e l'e-mail.
Siccome l'inserimento nella tabella B che definisce il tipo di
contatti è libero, uno potrebbe mettere il telefono al primo posto, il
cellulare al secondo e la mail al terzo, ma potrebbe fare
diversamente, per esempio il cellulare al primo, le note al secondo,
l'indirizzo skype al terzo, il telefono al quarto e la mail al
quinto.
Domanda: come faccio a rintracciare il "valore" del telefono, del
cellulare e della mail? Penso già che la risposta sia "impossibile",
ma mi rimetto comunque alla Vostra esperienza. Grazie! ; )

?"Francesco Salvagnini"  ha scritto nel messaggio 
news:7b0c1596-aa60-4955...@x11g2000yqc.googlegroups.com...
Buongiorno a tutti!



___
Dunque mi sa che mi sono perso....
Tu hai Clienti, ok
Poi hai una tabella dei tipi di TipoContatto"
idTipo
TipoContatto
Poi hai una tabella Recapiti in cui hai
idRecapito
idCliente
idTipoContatto
Contatto
Bene qual è il problema?
Nel report
SELECT idCliente, Ciente, (select TOP 1 Contatto FROM Recapiti WHERE 
idTiporecapito = 1 AND idCliente = C.idcliente) as telefono FROM Clienti as 
C
per esempio
MA

 MA
Il problema è che il telefono non necessariamente viene inserito come
primo record nella tabella Tipo_Contatto (la tabella Tipo_Contatto
viene popolata dall'utente a suo piacimento), quindi non posso
scrivere  idTiporecapito = 1.
L'Utente potrebbe voler mettere l'indirizzo mail nel primo record
della tabella Tipo_Contatto e quindi il report mi scriverebbe sotto la
colonna del telefono la mail. Non so se mi sono spiegato..
Certo, se popolassi io la tabella Tipo_Contatto il problema non
sussisterebbe, solo che l'utente non potrebbe aggiungere altri
Tipi_Contatto.

 Tipi_Contatto
Provo a darmi una risposta, ditemi se va bene:
Nella tabella Tipo_Contatto inserisco quei tipi di contatto che
utilizzo nei report e nel codice.
Nella Casella Combinata che mi fa vedere tutti i Tipi_Contatto mostro
tutti i Tipi_Contatto, mentre nella mascherina in cui l'utente va a
inserirne di nuovi, disabilito la visione di quelli standard inseriti
da me. L'utente può solo aggiungere o modificare i suoi Tipi_Contatto.
Così nella sottomaschera vedrà tutti i contatti che vuole, però
telefono, cellulare e mail avranno come ID uno, due, tre fissi. E io
potrò recuperarli come voglio. Mi sono chiarito? ; )

?"Francesco Salvagnini"  ha scritto nel messaggio 
news:b090946e-6f7e-4bf1...@k7g2000yqj.googlegroups.com...



__
yes
MA

 MA
Grazie Max
Vorrei affrontare lo stesso argomento sotto un altro punto di vista.
Nella supertabella, ci sono molti campi suddivisibili per argomento.
Mi spiego:
ID utente
Nome
Cognome
BattesimoData (Data)
BattesimoParrocchia (Numerico collegato a tabella Parrocchia)
BattesimoPadrino (Testo)
BattesimoMadrina (Testo)
BattesimoCelebrante (Numerico collegato a tabella Sacerdoti)
CresimaData (Data)
CresimaParrocchia (Numerico collegato a tabella Parrocchie)
CresimaPadrinoMadrina (Testo)
CresimaCelebrante (Numerico collegato a tabella Sacerdoti)
MatrimonioData (Data)
MatrimonioParrocchia (Numerico collegato a tabella Parrocchie)
MatrimonioTestimoni (Testo)
MatrimonioCelebrante (Numerico collegato a tabella Sacerdoti)
ecc.
Per ridurre i campi nella tabella, mi consiglieresti di togliere e
campi Battesimo, Cresima, Matrimonio e creare delle tabelle in
relazione Uno a Uno?

 ?"Francesco Salvagnini"  ha scritto nel messaggionews:b090946e-6f7e-4bf1...@k7g2000yqj.googlegroups.com...

E pensare di inserire un campo che ordina le tipologie di contatto
secondo la priorità di visualizzazione?
buon lavoro,
Beppe

 - Mostra testo citato -
Grazie Beppe, già fatto. Non l'ho scritto per semplificare. A dire il
vero nelle tabelle satelliti oltre al campo per l'ordinamento sono
solito aggiungere anche un campo Sì-No che prende il posto della
cancellazione del record (che alle volte comporta dei problemi). Io
preferisco non annullare i record obsoleti, errati, doppi, ma
semplicemente renderli visibili o no nelle caselle combinate a seconda
che nella maschera di inserimento-modifica sia flaggato oppure no un
determinato record. ; )

 MA
Grazie Max




___
Guarda bene la struttura che si ripete nella nuova tabella
idUtente
idTipocelebrazione (una tabella con id, celebrazione, Ruolo1, ruolo2 e 
quindi avresti battesimo, padrino| matrimonio, testimone, testimone| etc... 
che poi con il column riempie idRuolo1 e idRuolo2)
datacelebrazione
idParrocchia
idRuolo1
idRuolo2
Soggetto1 (le persone)
Soggetto2
celebrante

 ?"Francesco Salvagnini"  ha scritto nel messaggionews:16f98077-c203-4ae9...@k7g2000yqj.googlegroups.com...

Excuse me, non ho capito bene, nel senso che non ho capito quante sono
le tabelle.
Nel caso mio sono 4 (vedi sotto). E nel tuo?
UTENTE
Id
Nome
Cognome
IdBattesimo
IdCresima
IdMatrimonio
BATTESIMO
Id
Data
Parrocchia
Celebrante
CRESIMA
Id
Data
Parrocchia
Celebrante
MATRIMONIO
Id
Data
Parrocchia
Celebrante

?"Francesco Salvagnini"  ha scritto nel messaggio 
news:d9e0cc3a-9b2b-40c3...@l11g2000yqb.googlegroups.com...






___
Scusa Francesco, ma non ci siamo
se crei una tabella
Id
Nome
Cognome
IdBattesimo
IdCresima
IdMatrimonio
ed il tizio si sposa 2 volte? (non divorziato, ma vedovo per esempio...)
MA 

 9-86ef-7b...@k7g2000yqj.googlegroups.com...

[cut]
puoi farlo con 2 tabelle, anche se non e' la soluzione migliore:
UTENTE
idutente
cognome
nome
CELEBRAZIONE
idcelebrazione
idutente
data
persona1
ruolo1
persona2
ruolo2
esempio di contenuti:
UTENTE
id:    	987456
cognome:   salvagnini
nome:    	francesco
CELEBRAZIONE
idcel:    	battesimo
idutente:  1
data:    	25/05/1921
persona1:  salvagnini pippo
ruolo1:    padrino
persona2:  salvagnini pierina
ruolo2:    madrina
idcel:    	cresima
idutente:  1
data:    	25/05/1931
persona1:  salvagnini fernanda
ruolo1:    madrina
persona2:  salvagnini salvatore
ruolo2:    padrino
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 idutente:  987456


 - Mostra testo citato -
Già, hai ragione tu naturalmente! Solo avrei bisogno che semplificassi
la risposta di prima (che mi sembra interessantissima) scrivendomi il
nome delle tabelle sopra, e i relativi campi sotto.. sai, non sono un
informatico anche se appassionato di Access..

Grazie Paolo, hai risposto prima che facessi la domanda..
Mi piace questa cosa. Naturalmente ci deve essere un'altra tabella con
l'elenco delle celebrazioni che si lega alla tabella CELEBRAZIONE in
una relazione Uno a Molti (giusto?).
Domanda: ma se questa non e' la soluzione migliore, la migliore
qual'e'?