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

Zapytanie SQL

VPS Starter Arubacloud
0 głosów
292 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 412 wizyt
pytanie zadane 4 września 2022 w SQL, bazy danych przez Sylwia 111 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 308 wizyt
pytanie zadane 19 maja 2022 w SQL, bazy danych przez Zio Nowicjusz (180 p.)
+2 głosów
2 odpowiedzi 252 wizyt
pytanie zadane 9 marca 2022 w SQL, bazy danych przez Czang Kai Shrek Obywatel (1,990 p.)

92,977 zapytań

141,940 odpowiedzi

321,182 komentarzy

62,303 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...