Selezioni su campo non obbligatorio

di il
7 risposte

Selezioni su campo non obbligatorio

Sperando di essere più chiaro su questo tema...
Ho una tabella con 3 campi "Toponimo" "Denominazione" "Civico" (una sorta di stradario) più il campo chiave ID.
Ho un'altra tabella che contiene l'elenco dei residenti ("nome", "cognome", "CF") e gli stessi campi presenti nello "stradario".
Avrei necessità di creare una maschera attraverso la quale consentire di:
1 - selezionare tutti i cittadini residenti in una certa via (elenco generale)
2 - selezionare tutti i cittadini residenti in una certa via ad un certo civico (dettaglio)
E' opportuno lavorare su tabelle così strutturate (normalizzazioni ecc. ecc.)?
Se si, avete suggerimenti sull'impostazione da dare all'applicazione?
Grazie

7 Risposte

  • Re: Selezioni su campo non obbligatorio

    omancino ha scritto:


    Ho una tabella con 3 campi "Toponimo" "Denominazione" "Civico" (una sorta di stradario) più il campo chiave ID.
    Ma come si dovrebbe chiamare questa tabella?
    Per come la vedo io, non consiglio di tentare di indicizzare i valori relativi a Indirizzo. Almeno di uno specificissimo scopo mirato quasi esclusivamente a ciò, ritengo un solo campo Indirizzo non indicizzato sia sufficiente. Scrivere:
    Via Filippo Turati, 29
    Via Turati Filippo 29
    Via Turati n.29
    Via F. Turati, 29
    V. F. Turati 29
    possono essere digitati tutti in egual modo rendendo il confronto, l'indicizzazione, l'elencazione alfabetica un obiettivo alquanto ostico.
    Non so/sappiamo cosa si prefigge il tuo database, ma trovo conveniente far terminare la cascata di informazioni anagrafiche al solo IDComune poichè le denominazioni di Stati, Regioni, Provincie, Comuni sono molto più stabili/standard, quindi più facilmente indicizzabili.
  • Re: Selezioni su campo non obbligatorio

    Il mio obiettivo è quello di consentire 2 diversi tipi di viste:
    1- a partire dalla sola indicazione di "toponimo" e "denominazione", avere la lista dei residenti in quella via (ad esempio "tutti i residenti in via roma")
    2- a partire dalla indicazione di "toponimo", "denominazione", "civico", avere la lista dei residenti in quella via a quello specifico civico (ad esempio "tutti i residenti in via roma 2")
    L'operatore dovrebbe avere la possibilità di interrogare il db inserendo o meno il civico.
    Per chiarezza, l'inserimento è su 3 campi distinti, e non in un unica stringa. Fondamentalmente, un campo "indirizzo" non esiste.
    Spero di avere chiarito le mie richieste.
    Grazie.
  • Re: Selezioni su campo non obbligatorio

    Quindi la tua tabella con 3 campi si chiamerebbe comunque Indirizzi e tu vuoi rendere UNIVOCO l'indirizzo:
    Via Roma 2 con IDIndirizzo=1,
    mentre Via Roma 3 avrebbe IDIndirizzo=2,
    poi Via Roma 4 IDIndirizzo=3,
    Piazza Giulio Cesare 8, IDIndirizzo=4
    Piazza Giulio Cesare 10, IDIndirizzo=5
    Piazza Giuseppe Garibaldi 9, IDIndirizzo=6
    Piazza Giuseppe Garibaldi 11, IDIndirizzo=7
    Piazza Giuseppe Garibaldi 23, IDIndirizzo=8
    Sarai sempre coerente di scrivere sempre per esteso Nome+Cognome? E se qualche volta ti scappa di scrivere:
    Piazza Garibaldi 9, non te ne sei accorto oppure lo hai dimenticato che ce l'avevi già, rischi di creare un doppione per la tua logica, ma per Access non lo è...
    Io lo trovo un po' pazzesco, ma contento tu...Devi avere in tabella Anagrafica (o Cittadini o Persone) un campo di tipo Numerico IDIndirizzo, poi relazione
    Indirizzi.IDIndirizzo uno-a-molti con Cittadini.IDIndirizzo.
  • Re: Selezioni su campo non obbligatorio

    Osvaldo, la tabella Indirizzi è già popolata, indicizzata e normalizzata. Non devo inserirci informazioni. Anche la tabella Anagrafe è già popolata, indicizzata e normalizzata e non devo modificare alcunchè.
    Dovrei creare una maschera tramite la quale un operatore DEVE inserire obbligatoriamente Toponimo e Denominazione (Indirizzi) ed ottenere la lista dei residenti (Anagrafe) nella via individuata dalla coppia Toponimo-Denominazione.
    Il terzo campo della maschera principale (Civico), può non essere popolato.
    Se l'operatore decide di volere una lista di residenti per un Civico specifico, PUO' inserire il valore previsto ed ottenere, sostanzialmente, una sottolista di quanto ottenuto nella query precedente.
    La difficoltà, per me, sta' nell'implementare questa flessibilità rispetto ai 3 campi della maschera principale: ho già la soluzione (funzionante) dove i 3 valori sono OBBLIGATORI, e cerco di capire se, in un unico processo, posso gestire anche la NON OBBLIGATORIETA' del campo Civico.
    Grazie.
  • Re: Selezioni su campo non obbligatorio

    Io ci vedrei:
    1. una query che include entrambe le tabelle Indirizzi e Cittadini (la relazione li lega automaticamente)
    2. In questa query che avrà tutti e 3 i campi, in corrispondenza di Criterio:
    Alla colonna Toponimo, scrivi:
    Like [Digita il Toponimo]
    Alla colonna Denominazione, scrivi:
    Like [Digita la Denominazione]
    Alla colonna Civico, scrivi:
    Like [Digita il Numero Civico]
    3. Salva la query con nome Query1

    Cosa succede. Quando esegui Query1, essa ti mostrerà, volta per volta, 3 piccole finestre (che si chiamano tecnicamente "finestra del parametro" (dai un'occhiata alla guida in linea su "query con parametri")). In ogni finestra devi digitare quello che ti viene richiesto (puoi sfruttare anche i caratteri jolly se non ricordi qualcosa di preciso). Quando si aprirà la 3a finestra "Digita il Numero Civico", l'utente, se non gli interessa, digita l'asterisco (*)(come per dire "tutti"), altrimenti digita il Numero Civico specifico.
  • Re: Selezioni su campo non obbligatorio

    omancino ha scritto:


    Sperando di essere più chiaro su questo tema...
    Ho una tabella con 3 campi "Toponimo" "Denominazione" "Civico" (una sorta di stradario) più il campo chiave ID.
    Ho un'altra tabella che contiene l'elenco dei residenti ("nome", "cognome", "CF") e gli stessi campi presenti nello "stradario".
    Avrei necessità di creare una maschera attraverso la quale consentire di:
    1 - selezionare tutti i cittadini residenti in una certa via (elenco generale)
    2 - selezionare tutti i cittadini residenti in una certa via ad un certo civico (dettaglio)
    E' opportuno lavorare su tabelle così strutturate (normalizzazioni ecc. ecc.)?
    Se si, avete suggerimenti sull'impostazione da dare all'applicazione?
    Grazie
    Esperienza personale su gestionali di questo tipo (non fatti da me, ovviamente)
    1) Tabella Toponimi (c'è un elenco dei toponimi usati in Italia più o meno ufficiale redatto dall'ex Catasto): campi IdToponimo e Descrizione (Via, Corso, Viale, in base all'elenco a cui facevo riferimento, se lo trovo posto il link)
    2) Tabella Vie: campi Codice Via, Codice Toponimo
    3) Tabella Indirizzi: campi IdIndirizzo, IdVia (che porta con sé già il toponimo), numero civico, sottonumero ecc
    Nell'anagrafica di ogni soggetto l'indirizzo è indicato solo con IdIndirizzo.
    Per le ricerche:
    - quella basata su toponimo e descrizione via la basi sulla Tabella Vie che poi estrarrà tutti gli IdIndirizzo che hanno quell'IdVia ed in base a quelli, selezioni tutti quelli che hanno IdIndirizzo in quell'elenco.
    - quella basata su Indirizzo e Numero civico, la basi interamente sulla Tabella Indirizzi.
    Un po' di query per decodificare e mettere in relazione il tutto, maschere con combo anche a cascata (una volta selezionata l'accoppiata "toponimo-via", porporre solo i civici in questa presenti) e ci sei.
    (ovviamente i nomi dei campi possono cambiare, IdIndirizzo può diventare anche IdNumCiv)
    Edit:elenco di toponimi:
    e si trova in questa pagina:
    Per un elenco ancora più dettagliato, quello a cui mi riferivo all'inizio del post, con un po' di pazienza lo trova nella tabella CUCODTOP.DBF del programma Catasto 2000: (che non funziona su 32bit)
    Se proprio lo si desidera, su 64bit dovrebbe essere possibile installare questi programmi e alla fine, se non è necessario (come credo) dover caricare materialmente alcun dato catastale, si trova nel file edc.db (un db SQlite) nella tabella COD_TOPONIMO. Il file è in PHPStone\webapps\pjb\var\
  • Re: Selezioni su campo non obbligatorio

    Grazie anche a te Phil, per le indicazioni e per i link ma, come scritto in un post precedente, le tabelle origine le eredito e non ho molto margine per adattamenti.
    Ad ogni modo, le tue indicazioni potranno tornare sicuramente utili in futuro.
Devi accedere o registrarti per scrivere nel forum
7 risposte