Baza danych Stworzenie raportu

0

Witam
Prosiłbym o pomoc w mojej bazie z
-dodawanie wypożyczeń ­ pamiętając o tym że nie można wypożyczyć aktualnie wypożyczonej rzeczy
-raport pokazujący jakie przedmioty są aktualnie wypożyczone
próbowałem dodać lub przeniesc wartość do tabeli** zamawiania**, jednak z tabeli np gry dana wartosc nie przenosi się
a raport wyglada tak(załacznik)
Prosze o Pomoc
Pozdrawiam
kod
CREATE TABLE public.gry
(
id_gry integer NOT NULL,
tytul character varying(20) NOT NULL,
wydawca character varying(20) NOT NULL,
CONSTRAINT gry_pkey PRIMARY KEY (id_gry)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.gry
OWNER TO postgres;

CREATE TABLE public.ksiazki
(
id_ksiazki integer NOT NULL,
nazwa_ksiazki character varying(20) NOT NULL,
nazwa_plyty character varying(20) NOT NULL,
CONSTRAINT ksiazki_pkey PRIMARY KEY (id_ksiazki)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.ksiazki
OWNER TO postgres;

CREATE TABLE public.wypozyczajacy
(
id_wyp integer NOT NULL,
imie character varying(20) NOT NULL,
nazwisko character varying(20) NOT NULL,
adres character(20) NOT NULL,
miasto character varying(40) NOT NULL,
wojewodztwo character varying(20) NOT NULL,
telefon character(20) NOT NULL,
mail character varying(20) NOT NULL,
CONSTRAINT wypozyczajacy_pkey PRIMARY KEY (id_wyp)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.wypozyczajacy
OWNER TO postgres;

CREATE TABLE public.muzyka
(
id_muzyka integer NOT NULL,
tytul character varying(20) NOT NULL,
wykonawca character varying(20) NOT NULL,
rok character(20) NOT NULL,
CONSTRAINT muzyka_pkey PRIMARY KEY (id_muzyka)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.muzyka
OWNER TO postgres;

CREATE TABLE public.zamowienia
(
nr_zamowienia character varying(20) NOT NULL,
id_wyp integer NOT NULL,
id_muzyka character varying(20),
id_gry character varying(20),
id_ksiazki character(20),
CONSTRAINT wypozyczenia_pkey PRIMARY KEY (id_wyp)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.zamowienia
OWNER TO postgres;

Skrypty dodawajace warosci do kolumn:
Skrypt dodawania wypozyczajacego

insert into wypozyczajacy(id_czytelnika,imie,nazwisko,adres,miasto,wojewodztwo,telefon,mail)
values ('5','krzysztof','kowalczyk','stara_35','strachowka','mazowieckie','54355535','krzysztof@edrwert')

insert into wypozyczajacy(id_czytelnika,imie,nazwisko,adres,miasto,wojewodztwo,telefon,mail)
values ('4','damian','deptula','lesna_45','oltarzew','mazowieckie','54356435','deptula@edrwert')

insert into wypozyczajacy(id_czytelnika,imie,nazwisko,adres,miasto,wojewodztwo,telefon,mail)
values ('3','igor','gbur','wiejska','tluszcz','zachodniopomorskie','533456435','igor@edrwert')

insert into wypozyczajacy(id_czytelnika,imie,nazwisko,adres,miasto,wojewodztwo,telefon,mail)
values ('2','pawel','nowak','wesola','gdansk','pomorskie','53425435','pawel@edrwert')
insert into wypozyczajacy(id_czytelnika,imie,nazwisko,adres,miasto,wojewodztwo,telefon,mail)
values ('1','Adam','Kowalski','warszawska_15','warszawa','mazowieckie','555555151','daid@dsf')

skrypt dodawajacy przedmioty do biblioteki:
insert into gry(id_gry,tytul,wydawca)
values ('2','fifa','easports')

insert into gry(id_gry,tytul,wydawca)
values ('1','halo','microssoft')

insert into gry(id_gry,tytul,wydawca)
values ('3','cal_of_duty','easports')

insert into gry(id_gry,tytul,wydawca)
values ('4','F1','codemaster')

insert into gry(id_gry,tytul,wydawca)
values ('5','forza','turn10')

insert into ksiazki(id_ksiazki,nazwa_ksiazki,autor)
values ('1','harry_poter','rowling')

insert into ksiazki(id_ksiazki,nazwa_ksiazki,autor)
values ('2','potop','sienkiewicz')

insert into ksiazki(id_ksiazki,nazwa_ksiazki,autor)
values ('3','ogniem_i_mieczem','sienkiewicz')

insert into ksiazki(id_ksiazki,nazwa_ksiazki,autor)
values ('4','kubus_puchatek','Milne')

insert into ksiazki(id_ksiazki,nazwa_ksiazki,autor)
values ('5','50_twarzy_greya','James')

insert into muzyka (id_muzyka,tytul,wykonawca,rok)
values ('1','best_justin_biber','biber','2010')

insert into muzyka (id_muzyka,tytul,wykonawca,rok)
values ('2','alcapone','alcapone','1991')

insert into muzyka (id_muzyka,tytul,wykonawca,rok)
values ('3','ich_troje','ichtroje','1999')

insert into muzyka (id_muzyka,tytul,wykonawca,rok)
values ('4','top_brithney','britneyspiers','2001')

insert into muzyka (id_muzyka,tytul,wykonawca,rok)
values ('5','mandaryna','mandaryna','2007')

0

Nie widzę tutaj nigdzie relacji miedzy tabelami. Zatem baza działa poprawnie, a tabele nie referują do innych tabel, wstawiasz tylko id, a skąd tabela ma wiedzieć że to id z innej tabeli? Np tak jak tutaj https://razorsql.com/features/postgresql_add_foreign_key.html
Czyli

alter table tabela add constraint nazwa_klucza 

sprawdź sobie jak to powinno wyglądać w PGSQL tu masz przykład -> http://www.postgresql.org/docs/8.2/static/sql-createtable.html

0

niestety nie wiem jak to zrobic
robie to w ten sposób, ze z każdej tabeli** gry,ksiazki**...kluczem głównym jest id_książki,id_gry..., wiec do tabeli zamówienia musze dodac te klucze jako klucze obce i nie wiem jak...
Tak probuje:
alter table zamowienia
add constraint id_gry
foreign key (id_gry)
references zamowienia(id_gry)
Prosze o Pomoc

1
ALTER TABLE tabela1 ADD CONSTRAINT nazwa FOREIGN KEY (kolumna1) REFERENCES tabela2(kolumna2)

W pół minuty znajdujesz to w google...

0

Tak wyglądają moje tabele, w tabeli zamówienia sa dodane klucze obce
do tabeli wypozyczenia dodaje insert into zamowienia nr_zamowienia,id_wyp,id_gry values (1,3,1)
i wyswietlam select * from zamowienia i wyskakuje (zalacznik)
nie wiem gdzie jest blad...

0

Wrzuć to najlepiej na sqlfiddle, to wtedy może ktoś coś poradzi.
Ściąganie 7 screenów i sprawdzanie co może być źle nie zachęca.

0

Tabela zamówienia
CREATE TABLE public.zamowienia
(
nr_zamowienia character varying(20) NOT NULL,
id_wyp integer NOT NULL,
id_muzyka integer,
id_gry integer,
id_ksiazki integer,
CONSTRAINT wypozyczenia_pkey PRIMARY KEY (id_wyp),
CONSTRAINT gry FOREIGN KEY (id_gry)
REFERENCES public.gry (id_gry) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ksiazki FOREIGN KEY (id_ksiazki)
REFERENCES public.ksiazki (id_ksiazki) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT muzyka FOREIGN KEY (id_muzyka)
REFERENCES public.muzyka (id_muzyka) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT wypozyczajacy FOREIGN KEY (id_wyp)
REFERENCES public.wypozyczajacy (id_wyp) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.zamowienia
OWNER TO postgres;
a reszta tabel pozostala bez zmiana patrzac na 1 post
mysle ze robie blad w wywołaniu tego raportu dotyczacego wyswietlenia danych z tabeli zamówienia

0

Dodałem klucze obce do tabeli zamówienia, jednak po dodaniu wartości do tej tabeli nadal raport wyświetla tylko cyfry, tabeli wypożyczenia dodaje insert into zamowienia nr_zamowienia,id_wyp,id_gry values (1,3,1)

wiec moje pytanie, jak wyświetlić poprawnie ta tabele?,-chce wyswietlic raport pokazujący jakie przedmioty są aktualnie wypożyczone
pozdawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1