Determinare il tipo di dato della tabella X da tabella Y

di il
16 risposte

Determinare il tipo di dato della tabella X da tabella Y

Buongiorno a tutti voi,

vi scrivo perché sono incappato in bel rompicapo e non saprei come uscirne.

Sto costruendo un database in access e al suo interno c'é il magazzino con la tabella dei prodotti. Ciò che vorrei poter fare é inserire delle specifiche tecniche dei singoli prodotti che ho a magazzino, mi spiego: se sto parlando di una batteria, vorrei poter inserire una serie di campi che mi permettano di indicare, in questo esempio, l'amperaggio e il voltaggio del prodotto.
A tal proposito, ho pensato di costruire un paio di tabelle e collegarle come nell'immagine.

Relazioni.JPG
Relazioni.JPG

Le ho relazionate nel seguente modo: in base alla sottotipologia del prodotto, vado a inserire il nome dei campi e la tipologia del campo della specifica (esempio: sottotipologia BATTERIA ---> nome campo "Amperaggio", tipo campo "Numerico").

Il problema arriva qui: nella tabella "TBL_ANAG_Art_sottotipo_specs_value" il campo che si chiama "valore" dovrebbe, come da idea, acquisire una differente tipologia di dato in base a ciò che gli viene indicato nella tabella "TBL_ANAG_Art_sottotipo_specs" nella riga "campo_tipo".

La mia domanda é la seguente: é possibile, quindi, indicare dalla tabella "TBL_ANAG_Art_sottotipo_specs", riga "campo_tipo", il tipo di dato che segue nella tabella "TBL_ANAG_Art_sottotipo_specs_value", riga "valore" ?

E' contorta la cosa, ma mi servirebbe sapere se é possibile fare una cosa del genere.
Se non lo fosse, potete consigliarmi una soluzione migliore?

Ciò che vorrei poter ottenere é relativamente semplice da immaginare: in base alla sottotipologia che vado a indicare al prodotto, ho la possibilità di indicare alcune specifiche tecniche del prodotto trattato. I campi delle specifiche tecniche variano in base alla sottotipologia.

Si capisce cosa sto chiedendo oppure é meglio se mi do all'ippica??
Dimentico qualcosa per caso?
Grazie dall'aiuto

16 Risposte

  • Re: Determinare il tipo di dato della tabella X da tabella Y

    Si chiama Teoria Realazionale dei Dati e Modello E/R (Entita'/Relazione).

    BISOGNA STUDIARE!
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    migliorabile ha scritto:


    Si chiama Teoria Realazionale dei Dati e Modello E/R (Entita'/Relazione).

    BISOGNA STUDIARE!
    Grazie della risposta. Siam Bravi tutti a proporre la teoria qui, un esempio pratico sarebbe più indicato per capire come funziona la teoria, almeno allegare qualcosa (o un link), anche sputato dopo un rigurgito da congestione.
    Premetto che me la sono appena letta la "teoria" (wikipedia é amata da tante persone, me compreso) e, pur non essendo un ingegnere, qualcosa l'ho capito, ma veniamo al dunque: come posso procedere orora?
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    Provo a buttare li un ragionamento... che io ho usato per gestire Classi di Apparecchi i quali hanno proprietà specifiche.
    In sostanza ho creato una tabella Proprietà con NomePrp e ValoreDefault(numerico) e FormattazioneValore(qui la stringa per formattare in base al tipo).
    Ho definito un Catalogo TipiApparecchi ed in relazione Molti-molti ho associato TipoApparecchi e Proprietà al catalogo con i valori di default.
    Quindi quando devo eseguire un Test su questo apparecchio lo prelevo dall'elenco apparecchi nel quale è definito il TIPO da catalogo... quindi recupero le proprietà dal catalogo ed i valori di default accodando alla tabella DatiTest legata 1-M con Test che a sua volta è relazionata 1-M con Apparecchi... i record delle proprietà ed i valori di default che poi rendo disponibile alla modifica...
    Ovviamente se si vuole aggiungere una proprietà la si pesca dall'elenco proprietà non dal catalogo e si decide se renderla a catalogo...
    Ho semplificato molto ma spero almeno di aver reso l'idea della logica... che in sostanza vede lo sviluppo VERTICALE in record 1-M delle proprietà invece che in ORIZZONTALE sui campi in quanto sarebbe rigido...

    Mi pare si dica INGEGNERE... ma io sono un idraulico...
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    @Alex ha scritto:


    Mi pare si dica INGEGNERE... ma io sono un idraulico...
    Il capo-mastro degli idraulici...
    Facile confondere lo spagnolo con l'ita(g)liano.

    Tornando alle cose serie: cosa intendi per " la stringa" nel campo "FormattazioneValore"? dimmi che non é puzza di VBA quella che sento, dimmi che ho frainteso...
    Con "Catalogo Apparecchi" hai definito cosa? l'insieme di tutti gli apparecchi? non sarebbe come copiare una dato già esistente?
    Con "Apparecchi e Proprietà al catalogo con i valori di default" intendi un ID univoco della tabella per caso?

    In ogni caso stiamo parlando di 5 tabelle: perché utilizzi due tabelle, "test" e "dati test" se hai già le tabelle? non ho capito questo passaggio...
    Perdonami le domande, sto provando a capire il tuo ragionamento.
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    Premesso che non puoi avere come limite il VBA... e ti suggerisco di allargare il tuo orizzonte... altrimenti fatichiamo.... anzi tu fatichi...
    La stringa di formattazione si us solo a livello visivo e per i report...quindi si applica la stringa del campo alla funzione FORMAT$(Valore,StringaFormattazione).
    Per il resto ti faccio un esempio...
    Il catalogo TipiApparecchi
    TrasformatoreAT
    TrasformatoreMT
    TrasformatoreBT
    Alternatore
    Batteria
    InterruttoreMT
    InterruttoreAT
    ecc...

    Ognuno di questi Tipi ha proprietà specifiche così come ha tipi di verifiche differenti con ciclicità differenti, livelli di tensione applicate differenti, valori di accettabilità differenti...
    Credimi che se pensi siano solo 5 tabelle ma non capisci quanto suggerisco... sei un Po lontano dalla realtà...
    Ora per ogni Tipo poi ho il parco Apparecchi installato... o Anagrafiche Apparecchi...
    Quando estraggo i test da effettuare su ogni apparecchio li estraggo per tipo e li salvo nella tabella preposta a salvare i dati... Non confondere i cataloghi con l'esecuzione o storicizzazione dei dati...
    Questo fa parte di quel ER di cui ti parlava Migliorabile...
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    @paveyard, e' proprio qui' che sbagli!

    La teoria ti fornisce ESATTAMENTE le risposte al tuo problema, che e' pure banale.
    La soluzione e' anch'essa banale, ma NON la spiegazione che serve per descriverla.

    E non serve nemmeno che ti presentiamo degli esempi perche' se ti STUDI come funziona il modello E/R scoprirai che la soluzione al tuo problema E' ESATTAMENTE UNO DEGLI ESEMPI CLASSICI che descrivono.

    Ma se vuoi una spiegazione ultra-rapida, la soluzione e' banale se pensi alla programmazione ad oggetti in cui la prima tabella serve per descrivere la classe base, e le altre tabelle le classi derivate. Nella tabella principale ci aggiungi una colonna per indicare il tipo, ed i record tra le varie tabelle sono legati tra di loro mediante la stessa chiave. Ed e' esattamente quello che ha fatto @Alex.

    Altra soluzione e' quella di usare una SUPERTABELLA con TUTTE le colonne neccessarie per modellare TUTTI i tuoi possibili oggetti.

    Altra soluzione ancora, e' la modellazione del tuo oggetto mediante una descrizione estensionale, utilizzando le triple <oggetto, attributo, valore>.

    Non hai capito un'acciderbolina di quello che ho scritto? Ma guarda!

    Nota: Wikipedia sara' anche amata dalle persone, ma per STUDIARE si usano I LIBRI!
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    migliorabile ha scritto:


    Nota: Wikipedia sara' anche amata dalle persone, ma per STUDIARE si usano I LIBRI!
    Sante parole!!!

    Paveyard ha scritto:


    Si capisce cosa sto chiedendo oppure é meglio se mi do all'ippica??
    Io non riesco a leggere nulla dall'immagine (troppo piccolo per i miei vecchi occhi). Mi spiace.
    Ma c'è @Alex, molto più giovane di me. Sei in buone mani.
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    gibra ha scritto:


    ....
    Ma c'è @Alex, molto più giovane di me. Sei in buone mani.
    Non sono così certo... (classe 71) ... in ogni caso non riesco a leggere molto nemmeno io, salvo capire che non va bene la struttura per la richiesta fatta...
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    Paveyard ha scritto:


    Sto costruendo un database in access e al suo interno c'é il magazzino con la tabella dei prodotti. Ciò che vorrei poter fare é inserire delle specifiche tecniche dei singoli prodotti che ho a magazzino, mi spiego: se sto parlando di una batteria, vorrei poter inserire una serie di campi che mi permettano di indicare, in questo esempio, l'amperaggio e il voltaggio del prodotto.
    Limitatamente a questa descrizione, perché hai tutte quelle tabelle?
    Anche per me non è leggibile l'immagine...vado a naso...secondo me ci sono molti errori di strutturazione/normalizzazione che vengono molto prima del titolo che hai proposto.
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    @Alex ha scritto:


    gibra ha scritto:


    ....
    Ma c'è @Alex, molto più giovane di me. Sei in buone mani.
    Non sono così certo... (classe 71) ...
    Vai tranquillo: ti batto di 'quasi' 20 anni.

    @Alex ha scritto:


    in ogni caso non riesco a leggere molto nemmeno io, salvo capire che non va bene la struttura per la richiesta fatta...
    Mi consola, sapere che non è tutta colpa della mia vista.
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    gibra ha scritto:


    @Alex ha scritto:


    gibra ha scritto:


    ....
    Ma c'è @Alex, molto più giovane di me. Sei in buone mani.
    Non sono così certo... (classe 71) ...
    Vai tranquillo: ti batto di 'quasi' 20 anni.
    ....
    Ammazza Gibra... sei quasi pronto per la Fornero...
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    @Alex ha scritto:


    Ammazza Gibra... sei quasi pronto per la Fornero...
    'quasi' ...
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    migliorabile ha scritto:


    @paveyard, e' proprio qui' che sbagli!

    La teoria ti fornisce ESATTAMENTE le risposte al tuo problema, che e' pure banale.
    La soluzione e' anch'essa banale, ma NON la spiegazione che serve per descriverla.

    E non serve nemmeno che ti presentiamo degli esempi perche' se ti STUDI come funziona il modello E/R scoprirai che la soluzione al tuo problema E' ESATTAMENTE UNO DEGLI ESEMPI CLASSICI che descrivono.

    Ma se vuoi una spiegazione ultra-rapida, la soluzione e' banale se pensi alla programmazione ad oggetti in cui la prima tabella serve per descrivere la classe base, e le altre tabelle le classi derivate. Nella tabella principale ci aggiungi una colonna per indicare il tipo, ed i record tra le varie tabelle sono legati tra di loro mediante la stessa chiave. Ed e' esattamente quello che ha fatto @Alex.

    Altra soluzione e' quella di usare una SUPERTABELLA con TUTTE le colonne neccessarie per modellare TUTTI i tuoi possibili oggetti.

    Altra soluzione ancora, e' la modellazione del tuo oggetto mediante una descrizione estensionale, utilizzando le triple <oggetto, attributo, valore>.

    Non hai capito un'acciderbolina di quello che ho scritto? Ma guarda!

    Nota: Wikipedia sara' anche amata dalle persone, ma per STUDIARE si usano I LIBRI!
    Scusami ma forse é troppo complesso l'argomento per le conoscenze che ho io. Il modello che dite, da quel che ho capito, é ciò che sta alla base della progettazione delle basi di dati e serve a definire come relazionare le tabelle tra di loro, definire le chiavi primarie, il tipo di dato dei singoli campi, ecc. . Ho letto le cose corrette o altro? giusto per capire se ho cercato correttamente... eventualmente, avete qualche link a qualche documento più chiaro su cui avete fatto affidamento voi?

    @migliorabile, forse sono io che non ce la faccio e magari vi sto facendo perdere tempo per niente, ma ci sto provando, apprezzo che siate già in... un pò, a rispondermi

    alex ha scritto:


    Premesso che non puoi avere come limite il VBA...
    Sui prodotti office mica é l'unico?

    Per chi ha problemi d vista, link:

    @osvaldolaviosa gestisco le varie relazioni con gli ID, il risultato é che nella tabella articoli, nelle sezioni dove il nome del campo richiama un ID da qualche altra tabella, io vedo un numero (Tabella articoli, campo "id_art_tipo" é un numero per quanto mi riguarda, nella tabella "TBL_ANAG_Art_tipo" ho sempre l'ID, che poi non é altro che un contatore visto che uso Access 2007, e solo in quest'ultima tabella ho il campo che mi definisce il valore vero e proprio come, per esempio, "batteria", "filtro", ecc., identificato con "art_tipo"). Con un'impostazione così, sbaglio? cosa esattamente?

    Grazie a tutti voi per la pazienza, forse é troppo complesso... per ora
  • Re: Determinare il tipo di dato della tabella X da tabella Y

    Paveyard ha scritto:


    @alex ha scritto:


    Premesso che non puoi avere come limite il VBA...
    Sui prodotti office mica é l'unico?.
    Si ma da come hai esclamato sembrava tu non lo padroneggiassi anzi lo volessi evitare... per questo ho affermato che non può essere un limite... se usi Access DEVI conoscere bene il VBA.

    Per il resto io non sono uso studiare su articoli modello Bignami in Internet perché danno una visione soggettivamente parziale... se li legge chi non ha basi continua a non capire i concetti di sostanza... quindi oltre che al suggerimento semplificato ma concreto che ti ho provato a fornire... non aggiungo altro.
Devi accedere o registrarti per scrivere nel forum
16 risposte