IniziaInizia gratis

Ottimizzare le opzioni del menù

Il personale della mensa è a conoscenza dell'ottimo lavoro che si sta facendo al liceo per organizzare i dati relativi ad aspetti importanti delle operazioni scolastiche. Anche loro vogliono contribuire a questi sforzi. In particolare, desiderano tenere traccia delle diverse opzioni di pasto disponibili durante l'anno scolastico. Con l'aiuto del reparto IT, è stata definita la seguente tabella a questo scopo:

CREATE TABLE meal (
    id INTEGER,
    name VARCHAR(50) NOT NULL
    ingredients VARCHAR(150), -- comma seperated list
    avg_student_rating NUMERIC,
    date_served DATE,
    total_calories SMALLINT NOT NULL
);

Usando le tue conoscenze sulla normalizzazione dei database, fornirai un progetto migliore per la tabella meal.

Questo esercizio fa parte del corso

Creare database PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la definizione della tabella ingredient per archiviare gli ingredienti.
  • Rendi la colonna id della tabella meal una PRIMARY KEY e rimuovi le colonne ingredients e date_served in modo che la tabella meal soddisfi la 2NF.
  • Completa la definizione di meal_date per memorizzare le date in cui viene servito un meal.
  • Completa la definizione di meal_ingredient in modo che gli ingredienti nella tabella ingredient possano essere referenziati dalla tabella meal_ingredient.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

CREATE TABLE ingredient (
  -- Add PRIMARY KEY for table
  ___ ___ ___ ___,
  name VARCHAR(50) NOT NULL
);

CREATE TABLE meal (
    -- Make id a PRIMARY KEY
	id ___ ___ ___,
    name VARCHAR(50) NOT NULL,

	-- Remove the 2 columns (below) that do not satisfy 2NF
  	ingredients VARCHAR(150), -- comma separated list
    avg_student_rating NUMERIC,
    date_served DATE,
    total_calories SMALLINT NOT NULL
);

CREATE TABLE meal_date (
    -- Define a column referencing the meal table
  	meal_id INTEGER ___ ___(___),
    date_served DATE NOT NULL
);

CREATE TABLE meal_ingredient (
  	meal_id INTEGER REFERENCES meal(id),
  
    -- Define a column referencing the ingredient table
    ingredient_id INTEGER ___ ___(___)
);
Modifica ed esegui il codice