wiki:RelationalDesign

P2: Логички и физички дизајн - Креирање база податоци (со SQL DDL)

Релациска шема

Легенда:

Болдирано = not null;

Подвлечено = primary key;

Црвена боја на букви = unique constraint;

Трансформација

Tip_dijabetes(id, ime)

Tip_insulin(id, ime)

Nacin_prigotvuvanje_hrana(id, ime)

Covek(id, embg, email, ime, prezime, pol, datum_na_ragjanje)

Doktor(id*)

*nadvoreshen kluc kon Covek(id)

Dijabeticar(id*, data_na_otkrivanje, tip_dijabetes_id^)

*nadvoreshen kluc kon Covek(id) ^nadvoreshen kluc kon Tip_dijabetes(id)

Datoteka_metapodatoci(id, ime, hash, opis, mime, tip_datoteka)

Faksimil(id*, doktor_id^, dijabeticar_id+)

*nadvoreshen kluc kon Datoteka_metapodatoci(id)

^nadvoreshen kluc kon Doktor(id)

+nadvoreshen kluc kon Dijabeticar(id)

Zdravstven_rezultat(id*, dijabeticar_id^)

*nadvoreshen kluc kon Datoteka_metapodatoci(id)

^nadvoreshen kluc kon Dijabeticar(id)

Medikament(id, ime, proizvoditel, tip_medikament)

Lenti_merenje_shekjer(id*)

*nadvoreshen kluc kon Medikament(id)

Insulin(id*, tip_insulin_id^)

*nadvoreshen kluc kon Medikament(id)

^nadvoreshen kluc kon Tip_insulin(id)

Inventar(dijabeticar_id*, medikament_id^, rok_na_traenje, kolicina)

*nadvoresen kluc kon Dijabeticar(id)

^nadvoresen kluc kon Medikament(id)

Zapis(dijabeticar_id*, data)

*nadvoresen kluc kon Dijabeticar(id)

Zapis_insulin((dijabeticar_id*, data)*)

*nadvoresen kluc kon Dijabeticar(id, data)

Zapis_insulin_doziran_Insulin((dijabeticar_id, data)*, insulin_id^, kolicina)

*nadvoresen kluc kon Dijabeticar(id, data) ^nadvoresen kluc kon Insulin(id)

Zapis_so_izmeren_shekjer((dijabeticar_id, data)*, vrednost)

*nadvoresen kluc kon Dijabeticar(id, data)

Zapis_hrana((dijabeticar_id, data)*)

*nadvoresen kluc kon Dijabeticar(id, data)

Hrana(id, ime, proizvoditel, glikemiski_indeks, proteini, shekjeri, masti, jaglehidrati, kalorii, nacin_prigotvuvanje_hrana_id*)

* nadvoresen kluc kon Nacin_prigotvuvanje_hrana(id)

Obrok((dijabeticar_id, data)*, hrana_id^)

*nadvoresen kluc kon Zapis_hrana(dijabeticar_id, data)

^nadvoresen kkluc kon Hrana(id)

DDL скрипта за бришење на табелите и креирање на табелите

set search_path = project;


DROP TABLE if exists obrok;
DROP TABLE if exists hrana;
DROP TABLE if exists zapis_hrana;
DROP TABLE if exists zapis_so_izmeren_sekjer;
DROP TABLE if exists zapis_insulin_doziran_insulin;
DROP TABLE if exists zapis_insulin;
DROP TABLE if exists zapis;
DROP TABLE if exists inventar;
DROP TABLE if exists insulin;
DROP TABLE if exists lenti_merenje_shekjer;
DROP TABLE if exists medikament;
DROP TABLE if exists zdrastven_rezultat;
DROP TABLE if exists faksimil;
DROP TABLE if exists datoteka_metapodatoci;
DROP TABLE if exists dijabeticar;
DROP TABLE if exists doktor;
DROP TABLE if exists covek;
DROP TABLE if exists nacin_prigotvuvanje_hrana;
DROP TABLE if exists tip_insulin;
DROP TABLE if exists tip_dijabetes;

-- отстранување на функции од шема

drop function if exists fn_Proveri_data_na_otkrivanje_dijabeticar_pred_datum_na_ragjanje;
drop function if exists fn_validiraj_medikament_disjoint;
drop function if exists fn_Validiraj_datoteka_metapodatoci_disjoint;

-- отстранување на шемата

drop schema if exists project;
 


-- креирање на шемата

create schema project;

-- се поставува патека односно шема во која ќе се извршуваат командите

set search_path = project;





-- tip_dijabetes definition

-- Drop table



CREATE TABLE tip_dijabetes (
        id serial4 NOT NULL,
        ime varchar(256) NOT NULL,
        CONSTRAINT "PK_tip_dijabetes_id" PRIMARY KEY (id),
        CONSTRAINT "UNQ_Tip_dijabetes_ime" UNIQUE (ime)
);

-- tip_insulin definition

-- Drop table



CREATE TABLE tip_insulin (
        id serial4 NOT NULL,
        ime varchar(256) NOT NULL,
        CONSTRAINT "PK_Tip_insulin_id" PRIMARY KEY (id),
        CONSTRAINT "UNQ_Tip_insulin_ime" UNIQUE (ime)
);

-- nacin_prigotvuvanje_hrana definition

-- Drop table



CREATE TABLE nacin_prigotvuvanje_hrana (
        id serial4 NOT NULL,
        ime varchar(256) NOT NULL,
        CONSTRAINT "PK_Nacin_prigotvuvanje_hrana_id" PRIMARY KEY (id),
        CONSTRAINT "UNQ_Nacin_prigotvuvanje_hrana_ime" UNIQUE (ime)
);


-- Drop table



CREATE TABLE covek (
        id serial4 NOT NULL,
        embg char(13) NOT NULL,
        email varchar(128) not null,
        ime varchar(256) NOT NULL,
        prezime varchar(256) NOT NULL,
        pol bpchar(1) NOT NULL,
        datum_na_ragjanje date NOT NULL,
        
        CONSTRAINT "PK_covek_id" PRIMARY KEY (id),
        CONSTRAINT "UNQ_covek_embg" unique(embg),
        constraint "UNQ_covek_email" unique(email),
        CONSTRAINT "CHK_covek_pol" CHECK ((pol = ANY (ARRAY['M'::bpchar, 'Z'::bpchar])))
);

-- doktor definition

-- Drop table



CREATE TABLE doktor (
        id int4 NOT NULL,
        CONSTRAINT "PK_doktor_id" PRIMARY KEY (id),
        CONSTRAINT "FK_doktor_id" FOREIGN KEY (id) REFERENCES covek(id)
);

-- dijabeticar definition

-- Drop table



CREATE TABLE dijabeticar (
        id int4 NOT NULL,
        data_na_otkrivanje date NOT NULL,
        tip_dijabetes_id int4 NOT NULL,
        CONSTRAINT "PK_dijabeticar_id" PRIMARY KEY (id),
        CONSTRAINT "FK_dijabeticar_id" FOREIGN KEY (id) REFERENCES covek(id),
        CONSTRAINT "FK_dijabeticar_tip_dijabetes_id" FOREIGN KEY (tip_dijabetes_id) REFERENCES tip_dijabetes(id)
);



-- datoteka_metapodatoci definition

-- Drop table



CREATE TABLE datoteka_metapodatoci (
        id serial4 NOT NULL,
        ime varchar(400) NOT NULL,
        hash varchar(400) NOT NULL,
        opis varchar(1000) NOT null default '',
        mime varchar(300) NOT NULL,
        tip_datoteka bpchar(1) NOT NULL,
        
        CONSTRAINT "PK_datoteka_metapodatoci_id" PRIMARY KEY (id),
        CONSTRAINT "UNQ_datoteka_metapodatoci_hash" UNIQUE (hash),
        CONSTRAINT "CHK_datoteka_metapodatoci_tip_datoteka" CHECK ((tip_datoteka = ANY (ARRAY['F'::bpchar, 'Z'::bpchar])))
);

-- faksimil definition

-- Drop table



CREATE TABLE faksimil (
        id int4 NOT NULL,
        doktor_id int4 NOT NULL,
        dijabeticar_id int4 NOT NULL,
        CONSTRAINT "PK_faksimil_id" PRIMARY KEY (id),
        CONSTRAINT "FK_dijabeticar_id" FOREIGN KEY (dijabeticar_id) REFERENCES dijabeticar(id),
        CONSTRAINT "FK_doktor_id" FOREIGN KEY (doktor_id) REFERENCES doktor(id),
        CONSTRAINT "FK_faksimil_id" FOREIGN KEY (id) REFERENCES datoteka_metapodatoci(id)
);

-- zdrastven_rezultal definition

-- Drop table



CREATE TABLE zdrastven_rezultat (
        id int4 NOT NULL,
        dijabeticar_id int4 NOT NULL,
        CONSTRAINT "PK_zdrastven_rezultat_id" PRIMARY KEY (id),
        CONSTRAINT "FK_zdrastven_rezultat_dijabeticar_id" FOREIGN KEY (dijabeticar_id) REFERENCES dijabeticar(id),
        CONSTRAINT "FK_zdrastven_rezultat_id" FOREIGN KEY (id) REFERENCES datoteka_metapodatoci(id)
);

-- medikament definition

-- Drop table



CREATE TABLE medikament (
        id serial4 NOT NULL,
        ime varchar(256) NOT NULL,
        proizvoditel varchar(256) NOT NULL,
        tip_medikament bpchar(1) NOT NULL,
        CONSTRAINT "CHK_Medikament_tip_medikament" CHECK ((tip_medikament = ANY (ARRAY['L'::bpchar, 'I'::bpchar]))),
        CONSTRAINT "PK_Medikament_id" PRIMARY KEY (id),
        constraint "UNQ_medikament_ime" unique(ime) 
);

-- lenti_merenje_shekjer definition

-- Drop table



CREATE TABLE lenti_merenje_shekjer (
        id int4 NOT NULL,
        CONSTRAINT "PK_Lenti_merenje_shekjer_id" PRIMARY KEY (id),
        CONSTRAINT "FK_Lenti_merenje_shekjer_id_Medikament_id" FOREIGN KEY (id) REFERENCES medikament(id)
);


-- insulin definition

-- Drop table



CREATE TABLE insulin (
        id int4 NOT NULL,
        tip_insulin_id int4 NULL,
        CONSTRAINT "PK_Insulin_id" PRIMARY KEY (id),
        CONSTRAINT "FK_Insulin_id_Medikament_id" FOREIGN KEY (id) REFERENCES medikament(id),
        CONSTRAINT "FK_Insulin_tip_insulin_id_Tip_insulin_id" FOREIGN KEY (tip_insulin_id) REFERENCES tip_insulin(id)
);

-- inventar definition

-- Drop table



CREATE TABLE inventar (
        dijabeticar_id int4 NOT NULL,
        medikament_id int4 NOT NULL,
        rok_na_traenje date NOT NULL,
        kolicina int4 NOT null check(kolicina > 0),
        CONSTRAINT "PK_inventar_id" PRIMARY KEY (dijabeticar_id, medikament_id, rok_na_traenje),
        CONSTRAINT "FK_dijabeticar_id" FOREIGN KEY (dijabeticar_id) REFERENCES dijabeticar(id),
        CONSTRAINT "FK_medikament_id" FOREIGN KEY (medikament_id) REFERENCES medikament(id)
);

-- zapis definition

-- Drop table



CREATE TABLE zapis (
        dijabeticar_id int4 NOT NULL,
        "data" date NOT NULL,
        CONSTRAINT "PK_zapis_id" PRIMARY KEY (dijabeticar_id, data),
        CONSTRAINT "FK_zapis_id" FOREIGN KEY (dijabeticar_id) REFERENCES dijabeticar(id)
);

-- zapis_insulin definition

-- Drop table



CREATE TABLE zapis_insulin (
        dijabeticar_id int4 NOT NULL,
        "data" date NOT NULL,
        CONSTRAINT "PK_zapis_insulin_id" PRIMARY KEY (dijabeticar_id, data),
        CONSTRAINT "FK_zapis_insulin_id" FOREIGN KEY (dijabeticar_id,"data") REFERENCES zapis(dijabeticar_id,"data")
);

-- zapis_insulin_doziran_insulin definition

-- Drop table



CREATE TABLE zapis_insulin_doziran_insulin (
        dijabeticar_id int4 NOT NULL,
        "data" date NOT NULL,
        insulin_id int4 NOT NULL,
        kolicina int4 NOT null check(kolicina > 0),
        CONSTRAINT "PK_zapis_insulin_doziran_insulin" PRIMARY KEY (dijabeticar_id, data, insulin_id),
        CONSTRAINT "FK_zapis_insulin_doziran_insulin" FOREIGN KEY (dijabeticar_id,"data") REFERENCES zapis_insulin(dijabeticar_id,"data"),
        CONSTRAINT "FK_zapis_insulin_doziran_insulin_id" FOREIGN KEY (insulin_id) REFERENCES insulin(id)
);

-- zapis_so_izmeren_sekjer definition

-- Drop table



CREATE TABLE zapis_so_izmeren_sekjer (
        dijabeticar_id int not null,
        data date not null,
        vrednost decimal(4,1) not null check(vrednost > 0),
        
        constraint "PK_zapis_so_izmeren_sekjer_id" primary key(dijabeticar_id, data),
        constraint "FK_zapis_so_izmeren_sekjer_id" foreign key(dijabeticar_id, data) references zapis(dijabeticar_id, data)
);


-- zapis_hrana definition

-- Drop table



CREATE TABLE zapis_hrana (
        dijabeticar_id int not null,
        data date not null,
        
        constraint "PK_zapis_hrana_id" primary key(dijabeticar_id, data),
        constraint "FK_zapis_hrana_id" foreign key(dijabeticar_id, data) references zapis(dijabeticar_id, data)
);
-- hrana definition

-- Drop table





CREATE TABLE hrana (
        id serial not null,
        ime varchar(500) not null,
        proizvoditel varchar(1000) not null default '',
        glikemiski_indeks int not null check (glikemiski_indeks>=0 and glikemiski_indeks<=100),
        proteini decimal(3,1) not null check (proteini>=0 and proteini<=100),
        shekjeri decimal(3,1) not null check (shekjeri>=0 and shekjeri<=100),
        masti decimal(3,1) not null check (masti>=0 and masti<=100),
        jaglehidrati decimal(3,1) not null check (jaglehidrati>=0 and jaglehidrati<=100),
        kalorii int not null check (kalorii>=0),
        nacin_prigotvuvanje_hrana_id int not null,
        
        constraint "PK_hrana_id" primary key(id),
        constraint "FK_hrana_nacin_prigotvuvanje_hrana_id" foreign key(nacin_prigotvuvanje_hrana_id) references nacin_prigotvuvanje_hrana(id),
        constraint "CHK_hrana_shekejeri" check (shekjeri <= jaglehidrati),
        CONSTRAINT "CHK_hrana_proteini_jaglehidrati_masti" check(proteini+jaglehidrati+masti > 0 AND proteini+jaglehidrati+masti <= 100)
);


-- obrok definition

-- Drop table



CREATE TABLE obrok (
        dijabeticar_id int not null,
        data date not null,
        hrana_id int not null,
        kolicina int not null check (kolicina>0),
        
        constraint "PK_obrok_id" primary key(dijabeticar_id, data, hrana_id),
        constraint "FK_obrok_dijabeticar" foreign key(dijabeticar_id, data) references zapis_hrana(dijabeticar_id, data),
        constraint "FK_obrok_hrana_id" foreign key(hrana_id) references hrana(id)
);

-- DISJOINT CHECK CONSTRAINT ZA DATOTEKA_METAPODATOCI

create function fn_validiraj_medikament_disjoint(
        p_id int, 
        p_tip_medikament char
)
returns boolean 
language sql
        returns null on null input
        as 
        $$
        select coalesce ((select 1 from medikament m where m.id = p_id and tip_medikament  = p_tip_medikament), 0) = 1;
        $$;

alter table lenti_merenje_shekjer add constraint "CHK_Validiraj_kreiran_prethoden_zapis_vo_medikament_lenti_merenje_shekjer"
check (fn_validiraj_medikament_disjoint(lenti_merenje_shekjer.id, 'L'));

alter table insulin add constraint "CHK_Validiraj_kreiran_prethoden_zapis_vo_medikament_insulin"
check (fn_validiraj_medikament_disjoint(insulin.id, 'I'));


-- DISJOINT CHECK CONSTRAINT ZA DATOTEKA_METAPODATOCI

create function fn_Validiraj_datoteka_metapodatoci_disjoint(
        p_faksimil_id int
        , p_tip_datoteka char
)
returns int
as
$$
        select coalesce (
                (select 1
                from datoteka_metapodatoci
                where id = p_faksimil_id and tip_datoteka = p_tip_datoteka
                ), 0
        )
$$
language sql
RETURNS NULL ON NULL INPUT;

alter table faksimil add constraint "CHK_Validiraj_kreiran_prethoden_zapis_vo_datoteka_metapodatoci_faksimil" check(fn_Validiraj_datoteka_metapodatoci_disjoint(id, 'F')=1);
alter table zdrastven_rezultat add constraint "CHK_Validiraj_kreiran_prethoden_zapis_vo_datoteka_metapodatoci_za_zdravstven_rezultat" check(fn_Validiraj_datoteka_metapodatoci_disjoint(id, 'Z')=1);

-- DATUM NA OTKRIVANJE DIJABETES ZA DIJABETICAR E PRED DATUM NA RAGJANJE NA TOJ COVEK

CREATE function fn_Proveri_data_na_otkrivanje_dijabeticar_pred_datum_na_ragjanje(
        p_dijabeticar_id int,
        p_data_na_otkrivanje date
)
RETURNS boolean
AS
$$
        SELECT c.datum_na_ragjanje <= p_data_na_otkrivanje
        FROM covek c
        WHERE c.id = p_dijabeticar_id;
$$
LANGUAGE SQL
RETURNS NULL ON NULL INPUT;


alter table dijabeticar add constraint "CHK_Proveri_data_na_otkrivanje_dijabeticar_pred_datum_na_ragjanje" check (fn_Proveri_data_na_otkrivanje_dijabeticar_pred_datum_na_ragjanje(dijabeticar.id, dijabeticar.data_na_otkrivanje));


DML скрипта за полнење на табелите со податоци

set search_path = project;


insert into tip_dijabetes(ime)
values
('tip 1')
, ('tip 2');

insert into tip_insulin(ime)
values
('RAPID')
, ('BASAL');

insert into nacin_prigotvuvanje_hrana (ime)
values
('svezho')
, ('zamrznato')
, ('pecheno')
, ('vareno')
, ('dinstano')
, ('przheno')
, ('konzenvirano');

insert into covek(embg, email, ime, prezime, pol, datum_na_ragjanje)
values
('0101994000000', 'kristijan.ristovski@students.finki.ukim.mk', 'Kristijan', 'Ristovski', 'M', '1994-01-01')
, ('0911996123456', 'nikola.torbovski@students.finki.ukim.mk', 'Nikola', 'Torbovski', 'M', '1996-11-09')
, ('1809004111111', 'marija.trajkovska@students.finki.ukim.mk', 'Marija', 'Trajkovska', 'Z', '2004-04-18')
, ('110200299999', 'luka.markovski@students.finki.ukim.mk', 'Luka', 'Markovski', 'M', '2002-02-11')
, ('0606999546872', 'marionka.japonka@students.finki.ukim.mk', 'Marionka', 'Japonka', 'Z', '1999-06-06')
, ('1708021333333', 'nina.jadrovska@students.finki.ukim.mk', 'Nina', 'Jadrovska', 'Z', '2021-08-17');

insert into dijabeticar (id, data_na_otkrivanje, tip_dijabetes_id)
values
(2, '1996-11-09', 1)
, (3, '2010-01-15', 2)
, (6, '2022-09-01', 1);

insert into doktor (id)
values(1)
, (4)
, (5);

insert into datoteka_metapodatoci (ime, hash, opis, mime, tip_datoteka)
values
('zdravstven_rezultat_01_02_2023.pdf', '30e9b774c4691c38f0e3251545d1e238', '', 'application/pdf', 'Z')
, ('faksimil_09_08_2021.pdf', 'f75be9d5c7ee578aeec5fef7005f78a3', '', 'application/pdf', 'F')
, ('faksimil_19_09_2020.pdf', 'a96ef978bcd93a0813000886b09d99b5', 'Faksimil izdaden na 19-09-2020', 'application/pdf', 'F')
, ('zdravstven_rezultat_08_07_2022.pdf', '86e014467d5d5a21645bc17fb4bf328a', 'Opis za zdravstven rezultat...', 'application/pdf', 'Z')
, ('faksimil_07_12_2005.pdf', '0ef75e84f52a9793326dbf3f36fec367', '', 'application/pdf', 'F')
, ('zdravstven_rez_07_01_2001.pdf', '3e7a11c3f47cf8cc55fcf5e7f5bce614', ':)', 'application/pdf', 'Z');

insert into zdrastven_rezultat (id, dijabeticar_id)
values
(1, 2)
, (4, 3)
, (6, 6);

insert into faksimil  (id, doktor_id, dijabeticar_id)
values
(2, 4, 2)
, (3, 4, 2)
, (5, 5, 6);

insert into medikament (ime, proizvoditel, tip_medikament)
values
('Lantus', 'Sanofi Aventis', 'I')
, ('Apidra', 'Sanofi Aventis', 'I')
, ('Novo Rapid', 'Novo Nordisk', 'I')
, ('Tyson Bio AC200', 'Tyson Bioresearch', 'L')
, ('Accu-Chek Active', 'Roche Diabetes Care', 'L')
, ('OneTouch Ultra', 'Lifescan Medical Devices', 'L');


insert into lenti_merenje_shekjer (id)
values
(4)
, (5)
, (6);

insert into insulin (id, tip_insulin_id)
values
(1, 2)
, (2, 1)
, (3, 1);


insert into inventar (dijabeticar_id, medikament_id, rok_na_traenje, kolicina)
values
(2, 1, '2023-05-18', 5)
, (2, 1, '2025-09-17', 4)
, (2, 3, '2022-10-18', 1)
, (3, 5, '2024-12-12', 7)
, (6, 6, '2023-01-19', 13)
, (6, 6, '2023-05-06', 3);

insert into hrana (ime, proizvoditel, glikemiski_indeks, proteini, jaglehidrati, shekjeri, masti, kalorii, nacin_prigotvuvanje_hrana_id)
values
('leb na zar', 'stara furna', 20, 8, 60, 1.3, 1, 300, 3)
, ('leb', 'furna dime', 20, 9, 40, 1, 2, 312, 3)
, ('oriz', 'kamko', 13, 10, 55, 7, 8, 201, 4)
, ('makaroni', 'divela', 7, 11, 51, 8, 3, 135, 3)
, ('tuna', 'blue sea', 1, 22, 13, 2, 18, 400, 7)
, ('kulen', 'zlatibor', 9, 21, 15, 3, 31, 350, 1);

-- 2 3 6
-- '1996-11-09' '2010-01-15' '2022-09-01'

insert into zapis (dijabeticar_id, "data")
values
(2, '1999-02-08')
, (2, '2000-01-01')
, (2, '2001-08-09')
, (3, '2010-05-09')
, (3, '2010-09-09')
, (3, '2012-10-10')
, (6, '2022-10-01')
, (6, '2022-11-10')
, (6, '2022-12-30');

insert into zapis_so_izmeren_sekjer (dijabeticar_id, "data", vrednost)
values
(2, '1999-02-08', 11.5)
,(2, '2000-01-01', 9.8)
, (2, '2001-08-09', 3.1)
, (3, '2010-09-09', 8.1)
, (3, '2012-10-10', 2.3)
, (6, '2022-11-10', 7.9);

insert into zapis_insulin (dijabeticar_id, "data")
values
(2, '1999-02-08')
, (2, '2000-01-01')
, (2, '2001-08-09')
, (3, '2010-09-09')
, (6, '2022-10-01')
, (6, '2022-12-30');

insert into zapis_insulin_doziran_insulin (dijabeticar_id, "data", insulin_id, kolicina)
values
(2, '1999-02-08', 1, 15)
, (2, '2000-01-01', 1, 7)
, (2, '2001-08-09', 2, 1)
, (3, '2010-09-09', 3, 10)
, (6, '2022-10-01', 2, 9)
, (6, '2022-12-30', 2, 6);

insert into zapis_hrana (dijabeticar_id, "data")
values
(2, '1999-02-08')
, (2, '2001-08-09')
, (3, '2010-09-09')
, (6, '2022-10-01')
, (6, '2022-12-30');

insert into obrok (dijabeticar_id, "data", hrana_id, kolicina)
values
(2, '1999-02-08', 1, 100)
, (2, '1999-02-08', 6, 20)
, (2, '1999-02-08', 2, 16)
, (2, '2001-08-09', 2, 35)
, (3, '2010-09-09', 4, 125)
, (3, '2010-09-09', 5, 111)
, (6, '2022-10-01', 1, 37)
, (6, '2022-10-01', 5, 86)
, (6, '2022-12-30', 5, 97)
, (6, '2022-12-30', 1, 172);


Релациски дијаграм изваден од DBeaver

Last modified 9 months ago Last modified on 02/08/24 18:15:00

Attachments (8)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.