Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Access : Chiave esterna e query SQL?

    Ciao a tutti, sto implementando una Rubrica a scopo (auto)didattico ma ho un problema e spero che qualcuno abbia coraggio e pazienza per leggersi quanto segue

    Al momento ho inserito le seguenti tabelle

    Anagrafica(ID, Nome, Cognome, Cell)
    Tipologia(IDTipologia, NomeTipologia)
    DatiAmico(FK_Amico, FilmPreferito, SquadraDelCuore)
    DatiCollega(FK_Collega, Reparto, sede)

    Ecco i significati delle tabelle.

    Anagrafica(ID, Nome, Cognome, Cell) : persone inserite

    Tipologia(IDTipologia, NomeTipologia) : in NomeTipologia metto "amico","collega","cliente" etc. IDTipologia e' chiave primaria ed e' di tipo contatore.


    AssociazioneTipologia(IDAssociazione, LookUpAnagrafica, LookUpTipologia) :
    Siccome una persona puo' appartenere a una o piu' tipologie ho creato questa tabella in cui effettuare questa associazione. I campi lookUpAnagrafica e LookUpTipologia puntano rispettivamente alla chiave primaria delle tabelle anagrafica e tipologia. Siccome per inserire i dati in questi campi volevo che comparissero nel menu' a tendina i dati dei campi a cui puntavano, Il "Data Type" di questi campi e' stato creato in Access, col menu' a tendina e selezionando "lookUp Wizard". In tal modo quando devo inserire un nome e associarlo alla tipologia, mi compare autmaticamente e non devo far altro che selezionarlo.

    orbene adesso mi sono creato una tabella in cui devono comparire i dati SOLO degli amici :
    DatiAmico(FK_amico, SquadraDelCuore, Filmpreferito)
    e creero' anche tabelle analoghe tipo DatiCollega etc.

    Ecco il PROBLEMA:
    in questa tabella (DatiAmico) la chiave esterna FK_Amico deve contenere SOLO ed ESCLUSIVAMENTE gli ID delle persone che sono state definite appartenenti alla tipologia "amico".

    Quindi e' come se la FK_Amico dovesse essere legata ad una query giusto?
    Mi date un consiglio su come implementare questa soluzione?

    L'esito finale dovrebbe essere che cliccando sulla tabella "DatiAmico" e volendo immetter eun valore nel campo FK_Amico, mi compaiono gia' come nomi possibili SOLO quelli definiti come amici.

    Grazie per l'attenzione...se siete riusciti a leggere fin qui senza addormentarvi

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954

    Re: Access : Chiave esterna e query SQL?

    Originariamente inviato da pitopito
    Ciao a tutti, sto implementando una Rubrica a scopo (auto)didattico ma ho un problema e spero che qualcuno abbia coraggio e pazienza per leggersi quanto segue

    Al momento ho inserito le seguenti tabelle

    Anagrafica(ID, Nome, Cognome, Cell)
    Tipologia(IDTipologia, NomeTipologia)
    DatiAmico(FK_Amico, FilmPreferito, SquadraDelCuore)
    DatiCollega(FK_Collega, Reparto, sede)

    Ecco i significati delle tabelle.

    Anagrafica(ID, Nome, Cognome, Cell) : persone inserite

    Tipologia(IDTipologia, NomeTipologia) : in NomeTipologia metto "amico","collega","cliente" etc. IDTipologia e' chiave primaria ed e' di tipo contatore.


    AssociazioneTipologia(IDAssociazione, LookUpAnagrafica, LookUpTipologia) :
    Siccome una persona puo' appartenere a una o piu' tipologie ho creato questa tabella in cui effettuare questa associazione. I campi lookUpAnagrafica e LookUpTipologia puntano rispettivamente alla chiave primaria delle tabelle anagrafica e tipologia. Siccome per inserire i dati in questi campi volevo che comparissero nel menu' a tendina i dati dei campi a cui puntavano, Il "Data Type" di questi campi e' stato creato in Access, col menu' a tendina e selezionando "lookUp Wizard". In tal modo quando devo inserire un nome e associarlo alla tipologia, mi compare autmaticamente e non devo far altro che selezionarlo.

    orbene adesso mi sono creato una tabella in cui devono comparire i dati SOLO degli amici :
    DatiAmico(FK_amico, SquadraDelCuore, Filmpreferito)
    e creero' anche tabelle analoghe tipo DatiCollega etc.

    Ecco il PROBLEMA:
    in questa tabella (DatiAmico) la chiave esterna FK_Amico deve contenere SOLO ed ESCLUSIVAMENTE gli ID delle persone che sono state definite appartenenti alla tipologia "amico".

    Quindi e' come se la FK_Amico dovesse essere legata ad una query giusto?
    Mi date un consiglio su come implementare questa soluzione?

    L'esito finale dovrebbe essere che cliccando sulla tabella "DatiAmico" e volendo immetter eun valore nel campo FK_Amico, mi compaiono gia' come nomi possibili SOLO quelli definiti come amici.

    Grazie per l'attenzione...se siete riusciti a leggere fin qui senza addormentarvi
    L'FK non è condizionale. Una volta determinata la sorgente il valore del campo (se diverso da NULL) deve ricadere in tale insieme. Ciò che chiedi tu lo devi implementare a livello di logica di business (scegli se implementarlo lato applicazione o con delle procedure lato db server che verifichino la congruenza del dato).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.