baza HOTELS cz.1 tabela hotele „hotels” i pokoje „rooms” [SQL SERVER]

baza HOTELS cz.1 tabela hotele "HOTELS" i pokoje "ROOMS"

W tym cyklu zbudujemy bazę hoteli o nazwie "HOTELS", która będzie przykładową bazą przechowującą dane dotyczące HOTELI, czyli pokoi, rezerwacji, gości itp.

W części pierwszej zajmiemy się stworzeniem samej bazy HOTELS i  tabel hotele "hotels" i pokoje "rooms". No to zaczynamy.

Żeby móc tworzyć tabele uwtorzymy sobie na początek bazę danych w nazwie HOTELS. Poniżej krok po kroku jak to zrobić.
1. W tym celu uruchamiany Management Studio i w oknie "Object Explorer" klikamy prawym przyciskiem myszy na "Databases" i w podręcznego menu wybieramy opcję :"New Database…"
2. W oknie "New Database" w polu "Database name" wpisujemy nazwę bazy, w naszym przypadku będzie to HOTELS. Wszystko potwierdzamy przyciskiem "OK".
3. W tym momencie w Management Studio w Object Explorerze w gałęzi "Databases" powinna się pojawić baza HOTELS. Jeżeli tak się nie stanie, klikamy na węźle "Databases" prawym przyciskiem myszy i z menu wybieramy opcję "Refresh".

gotowe 🙂

sql database hotels baza danych hotele tutorial sql server

lub korzystamy z gotowego skryptu i uruchamiamy go w Management Studio

CREATE DATABASE HOTELS

Teraz możemy zająć się tabelami, zacznijmy od tabeli hotele "hotels" w której będziemy przechowywać informacje o poszczególnych hotelach. Na pewno będziemy potrzebowali takich pól jak:

  • będziemy potrzebowali unikalnego identyfikatora hotelu, nazwiemy go hotel_id
  • następnie każdy hotel ma nazwę więc pole hotel_name
  • bazę tworzymy jak najbardziej uniwersalną, więc zakładamy, że hotele mogą znajdować się w wielu krajach, więc musimy wiedzieć gdzie znajduje się hotel. Ale z uwagi na to, że nazwy krajów są powtarzalne będziemy je przechowywać w osobnej tabeli a w tabeli hotels będziemy przechowywć tylko ich identyfikatory – hotel_country_id
  • kolejna pozycja (pole) to miasto. Sytuacja analogiczna do krajów. Nazwy miast także będą się powtarzać, więc będziemy je przechowywać w osobnej tabeli a w tabeli hotels będziemy przechowywali tylko ich identyfikatory – hotel_city_id
  • każdy hotel oczywiście ma adres więc musimy stworzyć takie pole. Moglibyśmy rozbić adres na ulicę, nr domu i nr lokalu, ale dla potrzeb naszego projektu nie będziemy tego robić. Uznajemy, że adresy nie będą się powtarzać bo każdy hotel może się znajdować pod inną lokalizacją więc nasze pole nazywamy – hotel_address
  • hotel powinien także mieć ileś gwiazdek, tą informację będziemy przechowyać w polu – hotel_stars
  • oczywiście do hotelu powinniśmy mieć możliwość się dodzwonić – hotel_telephone
  • i napisać maila – hotel_email
  • nie wyobrażam sobie sytuacji gdzie hotel nie ma strony www – hotel_www

OK już wiemy jakich pól potrzebujemy. Teraz je storzymy w SQL SERVER (Management Studio).

W celu utworzenia tabeli "hotels" musimy w Management Studio wykonać następujące kroki.
1. Przechodzimy do Object Explorer-a.
2. Rozwijamy (plusikiem) gałąź przy Databases, następnie przy HOTELS. Rozwiną nam się jeszcze dodatkowe gałęzie: Database diagram, Tables, Views itd. Nas będzie interesowała gałąź Tables.
3. Klikamy prawym przyciskiem myszy na gałęzi Tables i z podręcznego menu wybieramy opcję "New Table…".
4. Wypełniamy tabelę zgodnie z obrazkiem poniżej.
sql database hotels baza danych hotele tutorial sql server
5. W celu zapisu tabeli klikamy na ikonkę "dyskiskietki" i wprowadzamy nazwę tabeli "hotels".

gotowe 🙂

lub korzystamy ze skryptu

USE HOTELS
GO

CREATE TABLE hotels(
     hotel_id int primary key not null
    ,hotel_name varchar(30) not null
    ,hotel_country_id int not null
    ,hotel_city_id int not null
    ,hotel_address varchar(50) not null
    ,hotel_stars int not null
    ,hotel_telephone varchar(20) not null
    ,hotel_email varchar(50) not null
    ,hotel_www varchar(50) not null
)

Myślę, że jeżeli chodzi o tabelę hotels to już wszystko. Jeżeli zapomnimy o czymś dodamy to później. Do naszego skryptu dodałem wszędzie ograniczenie NOT NULL bo nie wyobrażam sobie żeby którekolwiek z pól mogło być puste.

Teraz przejdziemy od tabeli pokoje "rooms". Co jest potrzebne do opisania pokoju?:

  • na początu na pewno uniaklny identyfikator danego pokoju – room_id
  • jeżeli mamy kilka hoteli, a taką bazę tworzymy, to napewno musimy wpisać w którym hotelu znajduje się dany pokój czyli stworzymy pole – room_hotel_id
  • każdy pokój ma swój unialny numer więc utworzymy pole – room_number
  • i każdy pokój znajduje się na jakimś piętrze, bo może być ważną informacją dla klienta, czyli powstaje pole – room_floor
  • każdy pokój może pomieścić także określoną ilość osób – room_people

W celu utworzenia tabeli "hotels" musimy w Management Studio wykonać następujące kroki.
1. Przechodzimy do Object Explorer-a.
2. Rozwijamy (plusikiem) gałąź przy Databases, następnie przy HOTELS. Rozwiną nam się jeszcze dodatkowe gałęzie: Database diagram, Tables, Views itd. Nas będzie interesowała gałąź Tables.
3. Klikamy prawym przyciskiem myszy na gałęzi Tables i z podręcznego menu wybieramy opcję "New Table…".
4. Wypełniamy tabelę zgodnie z obrazkiem poniżej.
sql database hotels baza danych hotele tutorial sql server

5. W celu zapisu tabeli klikamy na ikonkę "dyskiskietki" i wprowadzamy nazwę tabeli "rooms".

gotowe 🙂

lub korzystamy ze skryptu

USE HOTELS
GO

CREATE TABLE rooms(
     room_id int primary key not null
    ,room_hotel_id int not null
    ,room_number int not null
    ,room_floor int not null
    ,room_people int not null
)

Narazie nie określamy, czy np. w pokoju można palić czy jest WiFi itd bo takie dane będziemy przechowywać w innej tabeli, ale to opiszę w kolejnych wpisach.
Utwórzmy także klucze główne (PK – primary key) i klucze obce (FK – foreign key). Oczywiście kluczami głównymi w obu tabelach będą unikalne identyfikatory i tak w tabeli hotels będzie to pole hotel_id (PK) i analogicznie w tabeli rooms będzie to pole room_id (PK). Ponieważ pokój musi być przyporządkowany do jakiegoś hotelu a wszytkie dane dot. hoteli przechowujemy w tabeli hotels to musielismy w tabeli rooms stworzyć pole "trzymające" identyfikator hotelu "wskazującego" na pole hotel_id (tab. hotels) którym jest właśnie pole room_hotel_id i to właśnie pole będzie kluczem obcym (FK).
W tym momencie schemat naszej bazy hotels wygląda następująco.

sql database hotels baza danych hotele tutorial sql server

Nie widać na schemacie żadnych relacji między tabelami bo jeszcze ich nie skonfigurowaliśmy. Zróbmy to teraz. Co musimy zrobić? "Połączyć" pole room_hotel_id z tabeli rooms i polem hotel_id z tabeli hotels. Pamiętajmy jednak, że to pole room_hotel_id "ma wskazywać na pole hotel_id, więce musimy ustawić pole room_hotel_id jako klucz obcy i "wskazać" na pole hotel_id. Możemy to zrobić poleceniem.

USE HOTELS
GO

ALTER TABLE rooms
ADD CONSTRAINT fk_rooms_hotels FOREIGN KEY (room_hotel_id) REFERENCES hotels(hotel_id)

sprawdźmy teraz jak wygląda nasz schemat

sql database hotels baza danych hotele tutorial sql server

gotowe 🙂


sql database hotels baza danych hotele tutorial sql server  sql database hotels baza danych hotele tutorial sql server