Relazioni tra tabelle

di il
2 risposte

Relazioni tra tabelle

Ciao, a tutti qualche mese fa, ho realizzato con successo il mio primo database.
Ora vorrei rifarlo facendo delle modifiche.
Allora immaginiamo di creare un ricettario, avremo quindi a creare le tabelle:
Tabella ricetta
Codice ricetta - Nome ricetta (es: A1 - Pizza margherita)
Tabella Ingredienti
Codice Ingredienti - Nome ingredienti (es: 001 - farina; 002 - sugo ; 003 - pasta per pizza; 004 - olio)
Quantità
dove andrò ad indicare le quantità degli ingredinti

Fin qui facendo le relazioni funziona tutto.
Ora vorrei però creare un sottogruppo, ad esempio per la "pasta per pizza" , poiché questo è un semilavorato.
Ho creato la tabella con le relazioni che allego, purtroppo però non mi funziona quando vado a fare le query
Prima di impazzire secondo voi, ho creato le relazioni in modo corretto?


Esempio mettendo la farina

2 Risposte

  • Re: Relazioni tra tabelle

    Senza una debita spiegazione del 'per cosa' e 'per come' è difficile dare suggerimenti.

    Per quanto mi riguarda, la prima cosa che mi salta all'occhio è la completa inutilità della tabella Quantità ricetta, dato che quantità è un attributo dell'ingrediente usato in una specifica ricetta, creando di fatto un eccessiva normalizzazione (quindi sbagliata).

    Aggiungo anche l'errore macroscopico nella nomenclatura che usi ovvero nomi contenenti lo spazio con l'unico risultato di complicare tutte le query costringendo a racchiudere i nomi degli oggetti tra parentesi quadre, cosa che non porta assolutamente alcun vantaggio quindi è ingiustificata.

    I caratteri spazio e sottolineatura non andrebbero mai utilizzati.
  • Re: Relazioni tra tabelle

    Per gestire le Ricette, bastano 2 Tabelle... ma, contrariamente a quanto si possa pensare, non è banale... trattandosi di struttura Ricorsiva autoReferenziale.

    Tabella Elemento
    Tabella Ricetta

    Legate 1-M, ma la Tabella Ricetta deve implementare un campo in Autoreferenza con la Tabella ElementoPadre e tutti i campi SPECIFICI della Ricetta, mentre gli ingredienti diventano figli della ricetta ed a loro volta avranno i dati specifici.
    La dove NON esiste un elemento Padre, è una Ricetta Finita, la dove esiste un Padre diventa un Ingrediente di una ricetta... e può essere un ingrediente singolo(zucchero) oppure un Semilavorato(Pasta Frolla)...!

    E' più facile vedere la struttura funzionante finita, che trovi sviluppata in questo DEMO:


    Non ricordo se è in qualche modo protetto... ma nel menù dovresti trovare un modo per inserire una Password che dovrebbe essere "sitocomune".
    Non è semplice e banale, la struttura ricorsiva multilivello è pensata con Maschere aperte in MultiIstanza... e classi.

    Buon lavoro.
Devi accedere o registrarti per scrivere nel forum
2 risposte