relazioni tra tabelle

Anonimo
2017-05-31T19:09:42+00:00

Buonasera,

premesso che sono una neofita di questo programma e devo fare un compito per un'esame universitario,

ho bisogno di capire se come sto impostando il mio lavoro è corretto. Allora il compito richiede di creare tre tabelle: Menù, Ricette e Ingredienti.

Nella tabella ricetta ho inserito come campi il nome della ricetta e l'elenco di tutti gli ingredienti (i campi li ho nominati Ingrediente 1, Ingrediente 2, Ingrediente 3, ecc), Nella tabella ingredienti ho riportato tutti gli ingredienti e come campi ho inserito nome dell'ingrediente, grammatura, calorie.

Se volessi per es calcolare le calorie totali di un piatto come posso fare visto che nella tabella ingredienti ho tutto un elenco di ingredienti? Dovrei poter scegliere solo gli ingredienti che sono presenti nella ricetta..

Spero di essermi spiegata..

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

10 risposte

Ordina per: Più utili
  1. Anonimo
    2017-06-01T13:54:44+00:00

    Nelle tabelle hai scritto IDqualcosa, (immagino sia il campo con la chiave primaria) ma devo scrivere il nome del menù per es o lasciare una numerazione automatica?

    No è un campo (colonna in terminologia RDBMS) a numerazione automatica.

    Il nome menu sarà nel campo NomeMenu della relativa tabella.

    Le relazioni si fanno sempre tramite chiavi numeriche, in questo caso non saprei come tradurre "surrogate key" :-)

    Il problema poi mi sorge per le calorie.. se le inserisco nella tabella ingredienti, devo poi comporle per creare la ricettà in modo da creare la query per trovare quella più e meno calorica..

    Messa la caloria nell'ingrediente, il calcolo è fatto in una query che mette in relazione ingredienti, e ricette, passando per la tabella che ti permette la relazione n-n

    Prova a pubblicare un'immagine del tuo db, che forse ci si può spiegare meglio con un esempio.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-06-01T11:58:27+00:00

    Grazie per il vostro aiuto.

    Francesco hai ragione, lo scopo dell'elaborato che devo fare, è giusto un esempio per far capire fondamentalmente che ho appreso cosa sia un databse e quali sono alcune delle sue funzionalità principali (tabelle, query e maschere).

    Infatti la consegna dell'elaborato è questa:

    Il compito prevede la realizzazione di una Base di Dati. Essa deve contenere un ricettario informatico e consentire alcune visualizzazioni. Per realizzarla, seguire i passi e i dettagli seguenti:

    Domanda 1 (1 Punto)

    Creare le tabelle: Menù, Ricette e Ingredienti ed inserirvi tutti i campi necessari a collegare le tabelle tra di loro ed implementare le query richieste (vedi punto 3). NOTA: le tabelle citate sono obbligatorie ma è lasciata totale libertà di aggiungere qualsiasi altra tabella utile alla realizzazione della base di dati o all'implementazione delle query richieste.

    Domanda 2 (1 Punto)

    Inserire nelle tabelle tutti i dati necessari a completare almeno 3 menù. ATTENZIONE: si raccomanda di non ripetere inutilmente dei dati all'interno del data base; per esempio, se un ingrediente è presente i diverse ricette, ovviamente, occorrerà trovare il modo di farvi riferimento senza doverlo ripetere più volte nella tabella "Ingredienti".

    Domanda 3 (1 Punto)

    Implementare le opportune query per visualizzare:

    • l'elenco di tutti i menù disponibili,
    • l'elenco di tutti i menù disponibili per il pranzo,
    • l'elenco di tutti i menù disponibili per la cena,
    • la ricetta più calorica,
    • la ricetta meno calorica,
    • gli ingredienti della ricetta più costosa.

    Nel caso si utilizzi ACCESS, creare le maschere necessarie ad inserire i dati nelle tre tabelle fondamentali (Menù, Ricette e Ingredienti).

    Quello che tu mi hai scritto, è stato esattamente il primo problema che ho riscontrato nella costruzione delle mie tabelle (se un ingrediente si ripete che faccio?).

    Lo schema che mi hai mandato è molto chiaro e credo possa risolvere quasi tutti i problemi che avevo.. ho bisogno di alcune precisazioni però..

    Nelle tabelle hai scritto IDqualcosa, (immagino sia il campo con la chiave primaria) ma devo scrivere il nome del menù per es o lasciare una numerazione automatica?

    Il problema poi mi sorge per le calorie.. se le inserisco nella tabella ingredienti, devo poi comporle per creare la ricettà in modo da creare la query per trovare quella più e meno calorica..

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-06-01T09:08:10+00:00

    Sandro,

    È stato chiesto un aiuto per un compito scolastico che, considerando la formulazione della domanda, non è nemmeno di livello molto elevato!

    Parlare di distinta base  (l'italiano è una lingua molto ricca, utizziamola!),o di terza forma normale a chi vuole un aiuto, è come parlare di decomposizione molecolare ad un bambino che vuole fare una torta con fango e foglie.

    Mia nonna diceva: Prima di voler correre,impara a camminare.

    ...i miei 10 cents...

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-06-01T08:21:27+00:00

    ciao Alessia,

    Il concetto è dal mio punto di vista molto impegnativo e più di quanto lo possa sembrare in apparenza.

    La costruzione di una ricetta ricalca quella di una DiBa, o BOM( bill of material) leggi distinta base e non può prescindere dall’applicazione delle tre forme normali di gestione del database relazionale,

    almeno le prime tre (3NF) come giustamente sottolineato dall’intervento che ha preceduto il mio.

    Lo scenario che hai proposto è decisamente denormalizzato ed è da rivedere.

    Il tutto si riconduce al modello matematico di gestione dei graphs, alla gestione delle gerarchie e ricorsività delle stesse, nodi….

    Ci sono libri di testo dedicato solamente a questo tema, l’argomento è vastissimo ed oggetto di studio specifico un post e poche righe non possono essere esaudienti.

    Sull’ultimo punto ACE/JET non consentono nessuna gestione a livello di motore del database di alcuna ricorsività è necessario ricorrere a VBA, al contrario ad esempio di SqlServer.

    Ricorsività perché un ingrediente è solamente un ingrediente oppure anche un elemento più complesso finito…? Come gestiamo gli ingredienti…?

    Secondo me in una tabella e tutti assieme, e la composizione della ricetta inserendo gli ingredienti con due campi ingredienti.

    Se ti devi limitare alla costruzione della base dati gli spunti che ti ho dato dovrebbero essere sufficienti, per il calcolo delle calorie, lo esegui con una query imputando le calorie all’ingrediente in base all’unita di prodotto considerata, generalmente 100 gr.

    Presta attenzione all’aspetto ricorsività nell’immagine sotto indicata dovrebbe essere chiaro per quanto alla gestione della crostata in particolare per l’ingrediente marmellata, componete in una crostata ma a sua volta composto da altri componenti…

    Due esempi per quanto alla gestione della DiBa li trovi sul sito di RioLab, di cui una messa a disposizione dal ns grande Giorgio Rancati.

    qui : http://www.riolab.org/index.php?option=com\_content&view=category&id=46&Itemid=69 

    Una volta assimilato i concetti, popolato le tabelle, potrebbe essere molto interessante mostrare l'esplosione della DibA, leggi ricetta con un treeView.

    Tutto questo sempre IMHO.

    In bocca al lupo per il tuo esame e per i tuoi studi!

    ....e facci sapere come andrà!

    HTH.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-06-01T01:27:14+00:00

    La tua architettura non è normalizzata!

    Se crei la tabella Ricette con 10 ingredienti e ti arriva l'undicesimo cosa fai? E se vuoi modificare il nome di un ingrediente lo cerchi in ogni ricetta? 

    E se un ricetta viene usata in più menu? Ripeti tutto?

    Ti ho fatto un disegno molto semplice, non troppo ragionato, ma eventualmente mi farai altre domande.

    Per fare una struttura corretta devi usare delle tabelle di collegamento tra le tre principali, poiché le uova le metti nella torta Sacher, ma anche nelle tagliatelle.

    La ricetta delle tagliatelle la usi per il menu 10 $, ma anche in quello da 50 $.

    Negli ingredienti puoi mettere gli attributi come le calorie, in quella di collegamento tra ricetta e ingredienti la quantità (quindi variabile, una torta 3 uova, un'altra torta 5 uova),

    Ti consiglio di cercare una documentazione sulla normalizzazione dei database.

    Prova a vedere se riesci a scaricare questo documento, ha 10 anni mai le basi sono sempre valide.

    https://1drv.ms/b/s!ArhAJKUQ4PQ0g7wIpGGeuR8D6V7tGQ

    Per calcolare le calorie devi usare l'SQL, lo hai studiato? Se lo conosci ti creo la query.

    La risposta è stata utile?

    0 commenti Nessun commento