Problemi con relazione uno-a-uno

di il
2 risposte

Problemi con relazione uno-a-uno

Cari amici, mi sto "divertendo" con ACCESS 2007 e sto sperimentando diverse particolarita' di questo programma che scopro esser sempre piu' potente.
Oggi volevo provare a spezzare in due una tabella "CASE" che è composta da molti campi (una quarantina).Il mio obiettivo è quello di fare una tabella1 contenente solo i campi che di solito sono piu' richiesti (tipo:prezzo,in vendita,in affitto,indirizzo ,proprietario etc)e poi una tabella2 contenente tutti gli altri campi che sono raramente usati (tipo:num.bagni,num.vani,num.camere ed alcuni campi si/no come:ascensore,giardino,portineria,lavanderia etc)al fine di risparmiare spazio im memoria.
Ho costruito le due tabelle e, volendo una relazione uno-a-uno ho usato per entrambe la stessa chiave primaria e cioè ID-CASE (formato contatore).Ho fatto una maschera per inserire i dati delle due tabelle (comprendente tutti i campi in questione).Ma evidentemente la relazione non è corretta perchè ,dopo aver provato ad inserire alcuni dati ,al momento di salvare il tutto mi compare un messaggio "Impossibile aggiungere o modificare il record.Nella tabella tbl-tabella1 è necessario un record correlato .Impossibile salvare il record in questo momento".Ma le due tabelle mi risultano correlate !
Dove sta il mio madornale errore? Ho letto che la chiave per due tabelle con relazione uno-a-uno deve esser la stessa o no? Vi ringrazio fin d'ora per le spiegazioni .

2 Risposte

  • Re: Problemi con relazione uno-a-uno

    star88 ha scritto:


    Cari amici, mi sto "divertendo" con ACCESS 2007 e sto sperimentando diverse particolarita' di questo programma che scopro esser sempre piu' potente.
    Oggi volevo provare a spezzare in due una tabella "CASE" che è composta da molti campi (una quarantina).Il mio obiettivo è quello di fare una tabella1 contenente solo i campi che di solito sono piu' richiesti (tipo:prezzo,in vendita,in affitto,indirizzo ,proprietario etc)e poi una tabella2 contenente tutti gli altri campi che sono raramente usati (tipo:num.bagni,num.vani,num.camere ed alcuni campi si/no come:ascensore,giardino,portineria,lavanderia etc)al fine di risparmiare spazio im memoria.
    Direi che le premesse sono fortemente sbagliate, ma potresti spiegarci perchè hai pensato di risparmiare memoria... in base a quali concetti tecnici.
    La mia risposta in prima battuta è non solo che non risparmi memoria ma che ne consumi di più in quanto 2 Tabelle occupano più struttura, aggiungiamo poi la gestione dei Riferimenti chiave da dover gestire, le cose si complicano.
    Diciamo che secondo me stai confondendo il lato DATI(o server) dal lato CLIENT che ha il compito di fornire all'utente l'interfaccia grafica semplice e USERFRENDLY.

    star88 ha scritto:


    Ho costruito le due tabelle e, volendo una relazione uno-a-uno ho usato per entrambe la stessa chiave primaria e cioè ID-CASE (formato contatore).Ho fatto una maschera per inserire i dati delle due tabelle (comprendente tutti i campi in questione).Ma evidentemente la relazione non è corretta perchè ,dopo aver provato ad inserire alcuni dati ,al momento di salvare il tutto mi compare un messaggio "Impossibile aggiungere o modificare il record.Nella tabella tbl-tabella1 è necessario un record correlato .Impossibile salvare il record in questo momento".Ma le due tabelle mi risultano correlate !
    Dove sta il mio madornale errore? Ho letto che la chiave per due tabelle con relazione uno-a-uno deve esser la stessa o no? Vi ringrazio fin d'ora per le spiegazioni .
    Il tuo errore sta proprio nel non aver valutato la gestione dei campi CHIAVE.
    La 2° Tabella relazionata 1-1 deve essere gestita attraverso una Maschera ma in modo doverso, non potrai ovviamente avere in questa Tabella un Campo COUNTER, questo deve essere presente SOLO nella 1°... la 2° va gestita via codice e con Access la cosa è più complessa non avendo TRIGGER ma solo EVENTI CLIENTSIDE.
    L'uso di Tabelle 1-1 si fa solo se il numero dei campi necessari supera il limite imposto da Access che se non ricordo male è 255.
    In tutti gli altri casi come il tuo, quello che hai pensato di fare è L'ERRORE MADORNALE che ti ha creato complicazioni.
  • Re: Problemi con relazione uno-a-uno

    Grazie per le delucidazioni Alex!
    Pensavo di risparmiar memoria in quanto la seconda tabella sarebbe stata completata un numero inferiore di volte contenendo campi che sarebbero rimasti vuoti molto spesso.
    Chiedo venia per l'errore da principiante!
    Se ,come dici tu, per gestire la seconda tabella con una relazione uno-a-uno bisogna ricorrere per forza al codice e questo con Access è complicato , allora ritorno sui miei passi ed uso un'unica tabella.
    Anche oggi ho imparato qualcosa .
    Ti ringrazio
Devi accedere o registrarti per scrivere nel forum
2 risposte