MulaiMulai sekarang secara gratis

Menyederhanakan pilihan menu

Staf kafetaria mendengar tentang berbagai pekerjaan hebat yang sedang dilakukan di sekolah menengah untuk mengatur data bagi aspek-aspek penting dari operasional sekolah. Kini, mereka ingin ikut serta. Secara khusus, staf ingin melacak berbagai pilihan menu yang tersedia sepanjang tahun ajaran. Dengan bantuan staf TI, tabel berikut didefinisikan untuk tujuan tersebut:

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
);

Dengan pengetahuan Anda tentang normalisasi basis data, Anda akan memberikan desain yang lebih baik untuk tabel meal.

Latihan ini adalah bagian dari kursus

Membuat Database PostgreSQL

Lihat Kursus

Petunjuk latihan

  • Lengkapi definisi tabel ingredient untuk penyimpanan bahan.
  • Jadikan kolom id pada tabel meal sebagai PRIMARY KEY dan hapus kolom ingredients serta date_served agar tabel meal memenuhi 2NF.
  • Lengkapi definisi meal_date untuk menyimpan tanggal ketika suatu meal disajikan.
  • Lengkapi definisi meal_ingredient sehingga bahan pada tabel ingredient dapat direferensikan dari tabel meal_ingredient.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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 ___ ___(___)
);
Edit dan Jalankan Kode