Wykorzystanie widżetu ListView
oraz wbudowanych fragmentów simple_list_item_1
oraz simple_list_item_2
do wyświetlania listy elementów.
Archiwa autora: Przemek
Ćwiczenia w PHP i SQL - Portal Sakila
Niniejszy wpis jest pewnego rodzaju "instrukcją" prowadzącą do zbudowania portalu obsługującego wypożyczalnię wideo - Sakilę. Portal ten bazuje na testowej bazie danych Sakila (tutaj zip), z której korzystam podczas zajęć związanych z bazami danych. Przy każdej liście zadań znajduje się zaznaczenie, które metody spośród CRUD są implementowane w zadaniach na liście.
(Lista jest w trakcie tworzenia. Data ostatniej aktualizacji: 02.11.2023.)
Lista 1: wyświetlanie informacji podstawowych (cRud)
- Utwórz plik index.php wyświetlający listę filmów w bazie. Każdy film powinien być linkiem do pliku film.php, wysyłającym metodą GET (ale nie formularzem!), który film wyświetlić.
- Utwórz plik film.php. Plik ten powinien wyświetlić informacje o wybranym filmie (parametr wysłany metodą GET) - tytuł, opis, rating, długość. Następnie należy wyświetlić kategorie, do których film należy (każda kategoria "klikalna" - link do category.php wyświetlającego szczegóły kategorii), oraz obsadę (lista/tabela aktorów, każdy "klikalny" - link do actor.php wyświetlającego szczegóły aktora).
- Utwórz plik actor.php. Plik ten powinien wyświetlić szczegóły dotyczące aktora: imię i nazwisko, liczbę filmów, w których grał. Poniżej powinna być przedstawiona lista filmów, w których grał (każdy tytuł "klikalny" jak w p. 2).
- Utwórz plik category.php. Plik ten powinien wyświetlać szczegóły kategorii: nazwę, liczbę filmów w tej kategorii i ich listę (każdy tytuł "klikalny" jak w p. 2).
W tym momencie powinno być możliwe przeglądanie listy filmów, szczegółów o filmach, aktorach i kategoriach.
Czytaj dalejKonfiguracja interfejsów sieciowych w Linuksie z wykorzystaniem netplanu
Netplan jest narzędziem zarządzającym konfiguracją wszelkich aspektów konfiguracji sieci komputerowych podłączonych do urządzenia z systemem Linux. System Ubuntu zaadaptował to narzędzie w wersji 17.10 Artful Aardvark (Pomysłowy Mrównik) i od tamtej pory należy z niego korzystać, aby „trwale” skonfigurować sieć w systemie.
Dzięki netplanowi możliwe jest:
- konfigurowanie tylko podanych interfejsów / urządzeń (te niewymienione w pliku konfiguracyjnym nie są "ruszane"),
- wykorzystanie sieci w ekstremalnie okrojonym systemie (wręcz na etapie initramfs),
- bardzo szybka zmiana konfiguracji, ponieważ jest ona ustalana przy starcie systemu i tracona przy restarcie (efemeryczna),
- możliwe jest generowanie maszyn wirtualnych / kontenerów z zadaną konfiguracją sieciową jedynie poprzez dodanie pliku konfiguracyjnego do jej plików.
Ograniczenia modelu relacyjnego. Rodzaje kluczy w relacyjnych bazach danych
Tworząc schematy baz danych, możemy korzystać z narzucanych przez model relacyjny ograniczeń, aby system baz danych "pilnował nas" podczas pracy z przechowywanymi w bazie danymi.
Ograniczenia modelu relacyjnego możemy podzielić na trzy grupy:
- ograniczenia oparte na modelu danych, wynikające wprost z założeń modelu relacyjnego,
- ograniczenia oparte na schemacie (ograniczenia bezpośrednie), wynikające z zaprojektowanego schematu danych,
- ograniczenia oparte na aplikacjach (ograniczenia semantyczne / reguły biznesowe), wynikające z założeń, na podstawie których projektuje się schemat bazy danych; ograniczenia te nie mogą być zaprogramowane w bazie danych (lub jest to bardzo trudne do zaimplementowania), przez co są wyrażane w projektowanej aplikacji bazodanowej.
Ćwiczenia w kwerendach wprowadzających/wstawiających
Bazując na bazie testowej Sakila, wykonaj następujące ćwiczenia. Pod listą zadań znajduje się przypomnienie składni polecenia INSERT INTO
.
- Stworzyć kwerendę wprowadzającą do tabeli
actor
następujące dane.
pole | wartość |
actor_id | 201 |
first_name | Andrew |
last_name | McConaughey |
last_update | 2020-10-21 14:12:23 |
2. Stworzyć kwerendę dodającą do tabeli film_actor
następujące dane. Nieokreślone dane pozostawić domyślne.
actor_id | film_id |
201 | 1 |
201 | 2 |
201 | 3 |
3. Utworzyć tabelę actor_copy
zgodną z definicją tabeli actor
.
4. Utworzyć zapytanie wykonujące kopię danych z tabeli actor
do tabeli actor_copy
.