Andmebaas RetseptiRaamat

Задания.

Составь SQL запросы для создания данных таблиц и связей между таблицами.

Создай процедуры для более быстрого заполнения некоторых таблиц.

В каждой таблице должно быть минимально 5 записей.

SQL server

Создание таблиц

CREATE TABLE kasutaja(
    kasutajaID int PRIMARY key identity(1,1),
    eesnimi varchar(50),
    perenimi varchar(50),
    email varchar(150)
);

CREATE TABLE kategooria(
    kategooriaID int PRIMARY key identity(1,1),
    kategoorianimi varchar(50)
);

CREATE TABLE toiduaine(
    toiduaineID int PRIMARY key identity(1,1),
    toiduainenimi varchar(100)
);

CREATE TABLE yhik(
    yhikID int PRIMARY key identity(1,1),
    yhiknimi varchar(100)
);

CREATE TABLE retsept(
    retseptID int PRIMARY key identity(1,1),
    retseptnimi varchar(100),
    kirjeldus varchar(200),
    juhend varchar(500),
    sisestatud_kp date,
    kasutajaID int not null,
    kategooriaID int not null,
    CONSTRAINT retsept_fk FOREIGN key (kasutajaID) REFERENCES kasutaja(kasutajaID),
    CONSTRAINT retsept_fk2 FOREIGN key (kategooriaID) REFERENCES kategooria(kategooriaID)
);

CREATE TABLE tehtud(
    tehtudID int PRIMARY key identity(1,1),
    tehtud_kp date,
    retseptID int not null,
    CONSTRAINT tehtud_fk FOREIGN key (retseptID) REFERENCES retsept(retseptID)
);

CREATE TABLE koostis(
    koostisID int PRIMARY key identity(1,1),
    kogus int,
    retseptID int not null,
    toiduaineID int not null,
    yhikID int not null,
    CONSTRAINT koostis_fk FOREIGN key (retseptID) REFERENCES retsept(retseptID),
    CONSTRAINT koostis_fk2 FOREIGN key (toiduaineID) REFERENCES toiduaine(toiduaineID),
    CONSTRAINT koostis_fk3 FOREIGN key (yhikID) REFERENCES yhik(yhikID)
);

Создание процедур

CREATE PROCEDURE AddKasutaja
    @eesnimi varchar(50),
    @perenimi varchar(50),
    @email varchar(150)
AS
BEGIN
    INSERT INTO kasutaja (eesnimi, perenimi, email)
    VALUES (@eesnimi, @perenimi, @email)
END

CREATE PROCEDURE AddKategooria
    @kategoorianimi varchar(50)
AS
BEGIN
    INSERT INTO kategooria (kategoorianimi)
    VALUES (@kategoorianimi)
END
CREATE PROCEDURE AddToiduaine
    @toiduainenimi varchar(100)
AS
BEGIN
    INSERT INTO toiduaine (toiduainenimi)
    VALUES (@toiduainenimi)
END
CREATE PROCEDURE AddYhik
    @yhiknimi varchar(100)
AS
BEGIN
    INSERT INTO yhik (yhiknimi)
    VALUES (@yhiknimi)
END
CREATE PROCEDURE AddRetsept
    @retseptnimi varchar(100),
    @kirjeldus varchar(200),
    @juhend varchar(500),
    @sisestatud_kp date,
    @kasutajaID int,
    @kategooriaID int
AS
BEGIN
    INSERT INTO retsept (retseptnimi, kirjeldus, juhend, sisestatud_kp, kasutajaID, kategooriaID)
    VALUES (@retseptnimi, @kirjeldus, @juhend, @sisestatud_kp, @kasutajaID, @kategooriaID)
END
CREATE PROCEDURE AddTehtud
    @tehtud_kp date,
    @retseptID int
AS
BEGIN
    INSERT INTO tehtud (tehtud_kp, retseptID)
    VALUES (@tehtud_kp, @retseptID)
END
CREATE PROCEDURE AddKoostis
    @kogus int,
    @retseptID int,
    @toiduaineID int,
    @yhikID int
AS
BEGIN
    INSERT INTO koostis (kogus, retseptID, toiduaineID, yhikID)
    VALUES (@kogus, @retseptID, @toiduaineID, @yhikID)
END

Схема

Leave a Reply

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga