Quest: Zasady projektowania baz danych

BŁĘDNA STRUKTURA BAZY – „System kursów online”

CREATE TABLE kursy_online (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_imie VARCHAR(50),
    student_nazwisko VARCHAR(50),
    student_email VARCHAR(100),
    kursy TEXT,       -- lista kursów: "SQL,Python,Java"
    daty_rozpoczecia TEXT, -- lista dat: "2024-01-10,2024-02-01,2024-03-05"
    oceny TEXT        -- lista ocen: "5,4,5"
);
INSERT INTO kursy_online 
(student_imie, student_nazwisko, student_email, kursy, daty_rozpoczecia, oceny)
VALUES
('Jan', 'Kowalski', 'jan@example.com', 'SQL,Python', '2024-01-10,2024-02-01', '5,4'),
('Anna', 'Nowak', 'anna@example.com', 'Java', '2024-03-05', '5'),
('Piotr', 'Zieliński', 'piotr@example.com', 'SQL,Java', '2024-01-10,2024-03-05', '4,5');
ProblemSkutek
kolumny kursy/daty/oceny jako listytrudne do filtrowania, JOINowania i liczenia średnich
powtarzanie danych o studencieduplikacja i możliwość błędów (np. literówki)
brak tabel dla kursówbrak kontroli spójności (np. „SQL” vs „sql”)
brak relacji N:Mjeden student może mieć wiele kursów, jeden kurs wiele studentów – nieprawidłowo zapisane
Tagi: Brak tagów

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.