Tworzenie hierarchicznego modelu danych
W tym ćwiczeniu zbudujesz prosty hierarchiczny model danych, odwzorowując hierarchię zasobów IT. Zasób może być typu Hardware lub Software. Zasób Software można podzielić na Application lub Tools itd. Hierarchię przedstawia poniższy rysunek.

Do modelowania tej hierarchii potrzebna jest odpowiednia struktura danych. Można ją zrealizować przy użyciu modelu składającego się z identyfikatora rekordu podrzędnego ID oraz identyfikatora rekordu nadrzędnego ParentID. Wartości ID to kolejne liczby od 1 do 10.
Twoim zadaniem jest utworzenie tabeli Equipment oraz wstawienie do niej zasobów Software, Monitor i Microsoft Office. Pamiętaj, aby każdemu zasobowi przypisać właściwe identyfikatory, zgodnie z żądaną hierarchią.
To ćwiczenie jest częścią kursu
Hierarchiczne i rekurencyjne zapytania w SQL Server
Instrukcje do ćwiczenia
- Zdefiniuj pola
IDiParentIDtypuINT. PoleIDnie może mieć wartościNULL, natomiastParentIDmoże byćNULL. - Wstaw element
Softwaredo tabeli z poprawnymi identyfikatorami. Oprogramowanie jest częścią zasobuAsset. - Wstaw element
Monitordo tabeli z poprawnymi identyfikatorami. Monitor jest częścią zasobuHardware. - Wstaw element
Microsoft Officedo tabeli z poprawnymi identyfikatorami. To oprogramowanie jest częścią zasobuApplication.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
CREATE TABLE Equipment (
-- Define ID and ParentID
___ ___ NOT NULL,
Equipment VARCHAR(255) NOT NULL,
___ ___
);
INSERT INTO Equipment VALUES (1,'Asset',NULL);
INSERT INTO Equipment VALUES (2,'Hardware',1);
-- Insert the type Software
INSERT INTO Equipment VALUES (___,____,1);
INSERT INTO Equipment VALUES (4,'Application',3);
INSERT INTO Equipment VALUES (5,'Tool',3);
INSERT INTO Equipment VALUES (6,'PC',2);
-- Insert the type Monitor
INSERT INTO Equipment VALUES (___,'Monitor',2);
INSERT INTO Equipment VALUES (8,'Phone',2);
INSERT INTO Equipment VALUES (9,'IPhone',8);
-- Insert the type Microsoft Office
INSERT INTO Equipment VALUES (___,___,4);
SELECT *
FROM Equipment;