Menù ristorante.

di il
14 risposte

Menù ristorante.

Buongiorno vorrei realizzare un database che mi organizzi un menù alla stregua di un menù da ristorante per rendere l'idea.
Lo scopo finale è organizzare un menù giornaliero da un determinato elenco di pietanze,
La facoltà di scegliere le pietanze da più persone e poterle quantificare.
Dunque... Ho realizzato le tabelle specifiche relative alle pietanze, esempio pasta: tutte le pietanze col base pasta, quali pasta al pesto, pasta al ragù ecc.
Poi ho creato le tabelle primi, secondi, contorni.
In ciascuna tabella nel tipo dati ho scelto la ricerca guidata che va a pescare dalle tabelle pietanze, quindi automaticamente ha creato le relazioni tra tabelle.
Infine ho creato una tabella chiamata menù con un campo data dove poter archiviare la scelta giornaliera delle pietanze quali un primo, un secondo, un contorno.
Per poter scegliere le pietanze ho creato una maschera con all'interno le sottomaschere che raggruppano i primi ed i secondi.
Non riesco ad associare la scelta fatta nella maschera da riportare come risultato nella tabella menù. Spero di essere stato chiaro.
Se qualcuno può aiutarmi, grazie.

14 Risposte

  • Re: Menù ristorante.

    Non hai iniziato bene... se segui questa strada ti fermi ancora prima di iniziare.
    Il menù sarà costituito da "portate"... le portate sono catalogate per tipo, anche altri attributi... ma per ora semplifichiamo...
    Tipo=Primo/Secondo/Contorno/Dessert

    quindi ci sarà una tabella Portate relazionata ad una tabella Tipi... di conseguenza un campo IDTipo che le relaziona.
    Ogni portata avrà valorizzato l'attributo Tipo che ti consentirà di selezionare filtrando solo primi, solo secondi... ecc...

    Poi devi gestire gli ordini.... ma prima di andare avanti, perché ora iniziano le complicazioni della 3° forma normale, dovresti approfondire come si struttura un database altrimenti affondi subito.
  • Re: Menù ristorante.

    Grazie per la risposta...
    Devo studiare bene come strutturare il database, tenendo conto però che alcune proprietà dei primi per esempio, dovranno poter essere scelte, esempio: portate/primi/tipo di primo quali: paste, riso, zuppe, minestre, creme, risotti.
    Lo stesso per i secondi, esempio: portate/secondi/ tipo di secondi quali: carni a base bovina, carni a base suina, prodotti ittici ecc. Ma per ora ristrutturo il database.
  • Re: Menù ristorante.

    Ragiona bene... se riesci in astratto, altrimenti diventa difficile.
    Una portata deve poter avere determinati attributi... a prescindere... nell'esempio che poni il primo attributo è TIPO:
    TIPO:Primi/Secondi/Contorni/Desserts ecc..

    Un successivo attributo è il SottoTipo, ovvero quel sottoinsieme specifico di Primi Piatti o di Secondi...
    Tipo:Primi
    SottoTipi:paste, riso, zuppe, minestre, creme, risotti

    Tipo:Secondi:
    SottoTipi:carni a base bovina, carni a base suina, prodotti ittici

    Come vedi il SottoTipo è comune a tutte le Portate, ma non tutti i tipi sono applicabili a tutte le portate, ma ovviamente potrà essere Valorizzato SOLO con elenchi tipici di TIPO, ovvero non potrai assegnare ad un Primo, il SottoTipo "carni a base suina", oppure ad un Secondo, il SottoTipo "Risotti".

    Quì la cosa si inizia a complicare, come ti dicevo, e richiede la logica della 3° FN, ovvero una relazione Molti a Molti.
    Dovrai implmentare la Tabella TIPO con tutti i Tipi "Primi/Secondi/Contorni/Desserts/ecc...", poii servirà una Tabella chiamata "SottoTipi" che contiene TUTTI i Sottotipi possibili senza distinzione.
    Poi andrai a realizzare una Tabella che ti consente di attribuite ad ogni TIPO un gruppo di SottoTipi, quindi servirà una Tabella di Congiunzione TipiSottoTipi

    Questa Tabella è quella che andrà a POPOLARE la ComboBox di selezione del SottoTipo che verrà Filtrata per TIPO quando andrai ad inserire una Nuova Portata.

    Supponi di inserire una Nuova Portata, avrai 2 ComboBox (1° TIPO, mentre la 2° è SottoTipo), in cui la 2° è di Livello Gerarchico dipendente dalla 1°.
    Quindi la 2° sarà disabilitata, e verrà abilitata solo dopo l'Update della 1° e verrà valorizzata sulla base della Tabella Intermedia Filtrando per tutti quei SottoTipi contenuti nella Tabella "TipiSottoTipi" aventi come Tipo=CasellaCombinata TIPI.

    In questo modo se inserirai un PRIMO... avrai a disposizione come SottoTipi solo i SottoTipi riferiti ai Primi "paste, riso, zuppe, minestre, creme, risotti"

    Direi che hai elementi sufficienti...
  • Re: Menù ristorante.

    Concordo con Alex: ragiona in astratto e metti sempre in conto tutte le casistiche.

    Per esempio, pensando ad un ristorante, ci vedrei bene anche un filtro per identificare i cibi per i celiaci, ormai quasi tutti hanno portate solo per loro.

    Lo stesso vale per i vegani piuttosto che i vegetariani

    Insomma, gestire le portate in modo corretto può sembrare facile, però per chi è alle prime armi può creare problemi.


    Dubbio mio: lo scopo è quello di fare pratica con un esempio che vivi tutti i giorni, oppure vuoi proprio usarlo nel tuo ristorante?
    Nel secondo caso ti consiglierei di prendere prodotti già pronti, ce ne devono essere diversi (ormai si vede quasi ovunque il cameriere col pennino)
  • Re: Menù ristorante.

    Ho cercato di seguire il prezioso consiglio, però non riesco a depositare le portate scelte tramite maschera e sottomaschere, in una tabella dedicata, dove poter quantificare le portate scelte.
    Di seguito il link del lavoro svolto finora:
    https://mega.nz/file/hu4wxQAS#-LO5uj_lcKXf1vLhqMiKCEDL6Ju_eZP0UxJNN6JZ8gE
  • Re: Menù ristorante.

    Nel forum non è il massimo allegare l'intero database (io non riesco a scaricarlo). Per il quesito che hai proposto basta una elencazione di Tabelle/Campi con le Relazioni. In alternativa potresti allegare una immagine della Finestra Relazioni:
    - clicca sul tasto in basso "Editor completo e Anteprima"
    - nella nuova schermata che ti apparirà, scendi giù nella finestra e clicca sulla paletta Allegati, poi Aggiungi file, ecc...

    Priamo ha scritto:


    non riesco a depositare le portate scelte tramite maschera e sottomaschere, in una tabella dedicata, dove poter quantificare le portate scelte.
    Se hai risolto la struttura tabelle, ma non riesci a usare maschera/sottomaschera...il problema è un altro e occorre aprire una nuova discussione.
  • Re: Menù ristorante.

    Ok, mi spiego meglio...
    ho creato la tabella menu dove sono presenti il campo data, primi, secondi e contorni.
    ho creato la maschera menu contenente il campo data e le sotto maschere con i vari primi, secondi e contorni.
    ora... su maschera seleziono la data e questa viene annotata sulla tabella menù.
    sempre su maschera seleziono da sottomaschera una tipologia di primo o di secondo o di contorno, ma queste non vengono annotate sulla tabella menù.
  • Re: Menù ristorante.

    Mi pare che la discussione iniziale verteva sulla corretta organizzazione delle tabelle, altrimenti detta NORMALIZZAZIONE. Non abbiamo certezze su questo, cioè non hai elencato tabelle, campi, relazioni oppure mostrato la Finestra Relazioni.

    Priamo ha scritto:


    ho creato la tabella menu dove sono presenti il campo data, primi, secondi e contorni.
    Non mi sembra una tabella normalizzata.

    Priamo ha scritto:


    ho creato la maschera menu contenente il campo data e le sotto maschere con i vari primi, secondi e contorni.
    Poi parli di primi, secondi e contorni come "sottomaschere".

    Per me nulla è chiaro.
  • Re: Menù ristorante.

    Buonasera...
    si, mi scuso per la confusione e riparto dalle tabelle.
    nell'immagine le relazioni dove ci sono le tre tabelle principali:
    1primi; 2secondi; 3contorni.
    Allegati:
    31068_9fea388d17a5746f8adf3c9f083895c3.png
    31068_9fea388d17a5746f8adf3c9f083895c3.png
  • Re: Menù ristorante.

    L'immagine non è comprensibile, ma la risposta è sempre la medesima, non hai normalizzato il Database, quindi non si può affrontare una discussione sensata.
  • Re: Menù ristorante.

    Ok...
    cosa intendi per normalizzare il database? grazie.
  • Re: Menù ristorante.

    Priamo ha scritto:


    Ok...
    cosa intendi per normalizzare il database? grazie.
    se per normalizzazione si intende la creazione di tabelle e la definizione di relazioni tra tabelle, questo l'ho fatto...
    presumo però, manchi qualcosa.
  • Re: Menù ristorante.

    Per normalizzazione si intende il processo che rende un database in forma normale. Esistono 6 diverse forme normali, ma le più importanti sono le prime 3. Le forme normali garantiscono la qualità dei dati, ma servono anche per ragionare in modo corretto su come si debba progettare un database.
    Ogni database dovrebbe essere realizzato almeno in 3^ forma normale. Se non lo è, il teorema della normalizzazione garantisce comunque che ogni database può essere trasformato fino a soddisfare la 3^ forma normale.
    Trovi tutto in rete, su wikipedia e anche su youtube. Ecco il link a wikipedia
  • Re: Menù ristorante.

    Priamo ha scritto:


    Priamo ha scritto:


    Ok...
    cosa intendi per normalizzare il database? grazie.
    se per normalizzazione si intende la creazione di tabelle e la definizione di relazioni tra tabelle, questo l'ho fatto...
    presumo però, manchi qualcosa.
    Purtroppo non è tirando le righe tra mille tabelle che si normalizza... tutt'altro... hai denormalizzato e fatto confusione nei concetti proliferando Tabelle ERRATE.
    Ho cercato di spiegarti sopra la logica da applicare, e tu non l'hai colta, probabilmente pensando che la tua struttura fosse corretta.
    NON LO E' e non è gestibile con le regole elementari dei Database, quindi mi spiace deluderti ma NON E' NORMALIZZATO ed è da rivedere completamente.
    Ti suggerirei però, prima di produrre Tabelle in quantità, di capire meglio quali tabelle sono necessare a rispettare le Forme Normali altrimenti come si evince dal tuo ER il problema non TI risulta comprensibile.
Devi accedere o registrarti per scrivere nel forum
14 risposte