• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie SQL

Object Storage Arubacloud
0 głosów
261 wizyt
pytanie zadane 11 lipca 2023 w SQL, bazy danych przez W_potrzebie Nowicjusz (120 p.)

Witam,
Mam takie polecienie i nie bardzo umiem sobie z nim poradzić:

W bazie danych systemu rejestracji wypożyczalni sprzętu narciarskiego zostały utworzone następujące tabele:
Sprzet_narciarski (id_sprzetu, id_rodz_sprzetu, rok_produkcji, rozmiar, id_marki, zuzyty)
Rodzaj_sprzetu (id_rodz_sprzetu, nazwa)
Wypozyczenia (id_sprzetu, data_wypozyczenia, data_zwrotu)

  1. Utworzyć użytkownika pracownik_narty o haśle pracownik. Umożliwić mu wstawianie i modyfikowanie informacji tylko o nartach (NARTY w polu nazwa tabeli Rodzaj_sprzetu).
  2. Temu samemu użytkownikowi, umożliwić usuwanie informacji o sprzęcie zużytym (pole zuzyty tabeli Sprzet_narciarski ustawione na tak).
  3. Tak zmodyfikować tabele, by nie można było wypożyczyć sprzętu, który nie został wprowadzony do bazy danych i nie można było usunąć sprzętu, który jest wypożyczony

Narazie wymyśliłem coś takiego do pkt 1: 

CREATE VIEW Pracownik_narty_view AS
SELECT *
FROM Rodzaj_sprzetu r, Sprzet_narciarski s
WHERE r.id_rodz_sprzetu = s.id_rodz_sprzetu and nazwa = 'NARTY';

GRANT INSERT, UPDATE ON Pracownik_narty_view TO pracownik_narty;

A w 2 mam tak:

GRANT DELETE ON Pracownik_narty_view TO pracownik_narty WHERE zuzyty = 'tak';

Co do 3 to prosiłbym o jakieś wskazówki

1 odpowiedź

0 głosów
odpowiedź 15 września 2023 przez tgsx1 Nowicjusz (140 p.)
3 punkt rozwiązałbym poprzez dodanie kolejnej tabeli np. sprzet z listą sprzętów. W tej tabeli trzeba utworzyć klucz główny np. id_sprzetu.

W tabeli wypozyczenia trzeba dodać kolumnę id_sprzetu, tą kolumnę trzeba utworzyć jako klucz obcy to tabeli sprzet > id_sprzetu. I jeszcze kolumnę id_sprzetu trzeba ustawic na NOT NULL.

Teraz efekt będzie taki, że będzie można wypożyczyć tylko ten sprzęt, który jest wprowadzony w tabeli sprzet i nie będzie można usunąć go z tabeli sprzet gdy będzie wypożyczony czyli w tabeli wypozyczenia.

Podobne pytania

0 głosów
2 odpowiedzi 292 wizyt
pytanie zadane 4 września 2022 w SQL, bazy danych przez Sylwia 111 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 234 wizyt
pytanie zadane 19 maja 2022 w SQL, bazy danych przez Zio Nowicjusz (180 p.)
+2 głosów
2 odpowiedzi 236 wizyt
pytanie zadane 9 marca 2022 w SQL, bazy danych przez Czang Kai Shrek Obywatel (1,990 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...