Crash Course 101
10 moduły
5 Tygodnie

Projektant modeli danych

Kliknij, aby skopiować

Tworzenie bazy danych z wykorzystaniem projektanta modeli danych


Projektowanie baz danych

Nadszedł czas na zaprojektowanie własnej bazy danych. Aby to zrobić, przejdź do zakładki Database w lewym panelu.

Data models designer

Modele danych

Dane w bazie danych przechowywane są w postaci specjalnych tabel (modeli). I można zauważyć, że mamy już jeden model. Jest on częścią modułu autoryzacji i jest domyślnie dołączany do każdego projektu. Dzięki niemu tworzy się nowych użytkowników aplikacji i zarządza istniejącymi. Nie będziemy się jednak teraz rozwodzić nad jego opracowaniem, stworzymy własny model.

Wyobraźmy sobie, że tworzymy serwis mapowy. Stwórzmy model, który zawiera informacje o krajach. Aby go stworzyć, należy kliknąć prawym przyciskiem myszy w pustym obszarze płótna i wybrać Create empty model.

Aby utworzyć, musimy jedynie podać nazwę modelu. Autogeneracją punktów końcowych i elementów interfejsu użytkownika zajmiemy się w dalszych modułach kursu.

Create new model

Pola modelu

Należy pamiętać, że zaraz po utworzeniu model zawiera już 4 pola. Są to pola systemowe, których obecność znacznie upraszcza początkowe tworzenie i dalsze użytkowanie modelu.

ID (integer) - Unikalny identyfikator, klucz główny. Jest on automatycznie tworzony dla każdego nowego wpisu w tabeli i ma zapewnić, że nie będzie duplikatów. To właśnie przez identyfikator można jednoznacznie zidentyfikować rekord w tabeli. Jego wartość zaczyna się od 1 i automatycznie zwiększa się o 1 dla każdego nowego wpisu.

CreatedAt (datetime) - Czas, w którym rekord został utworzony w tabeli.

UpdatedAt (datetime) - Czas ostatniej modyfikacji wpisu.

DeletedAt (datetime) - Czas usunięcia wpisu. Oczywiście tylko wtedy, gdy zastosowano miękkie usuwanie. Czyli takie usunięcie, kiedy rekord jest tylko oznaczony jako usunięty i filtrowany przez żądania dostępu do niego, ale jednocześnie fizycznie pozostaje w tabeli. Różni się to od masowego usuwania, które faktycznie całkowicie usuwa dane.

Oprócz systemowych, rozsądnie byłoby dodać do tworzonego modelu pola własne. Załóżmy, że chcemy, aby w modelu pojawiła się nazwa kraju oraz jakiś opis z informacjami na jego temat.

Wybór typu pola nie powinien być problemem. String nadaje się na nazwę, a Text na opis informacyjny.

Add model field

Dodatkowo dostępne są jeszcze cztery przełączniki:

Multiple values ​​(Array) - używaj tablic zamiast pojedynczych wpisów.

Not null - określone pole nie może być puste, musi zawsze zawierać dane.

Unique - wartość pola musi być unikalna, w tym modelu nie mogą istnieć dwa rekordy, których wartości tego pola są takie same.

Index - wskazuje, że dla tego pola zostanie utworzony specjalny indeks w celu przyspieszenia wyszukiwania.

Ogólnie rzecz biorąc, zaznaczanie znaków jest słuszne tylko wtedy, gdy jest to naprawdę konieczne. Na przykład moglibyśmy zaznaczyć Not null i Unique dla nazw krajów, zakładając, że nie może istnieć kraj bez nazwy lub dwa kraje o tej samej nazwie. Dobrze jest jednak kontrolować to na etapie tworzenia logiki aplikacji, a nie nakładać ograniczenia na samą bazę danych.

W podobny sposób stwórz tabelę z informacjami o miastach. Zastanów się, jakie pola danych może ona zawierać, jakiego typu są to pola.

Relacje w modelach danych

Dane w bazie danych nie istnieją samodzielnie, w postaci rozproszonych tabel. Są one powiązane ze sobą w określony sposób. Kluczem do opracowania modelu danych jest określenie tych związków i zbudowanie relacji.

Aby ustalić takie powiązania, należy narysować myszką linię od granicy jednego modelu do drugiego. W naszym przykładzie wiemy na pewno, że każde miasto znajduje się w jakimś kraju, więc możemy utworzyć połączenie z kraju do miasta.

Data models relations

Istnieją 3 różne rodzaje połączeń:

One-to-one (has one). Każdy rekord w tabeli jest odwzorowany na jeden rekord z tabeli powiązanej (jest to również prawda w odwrotnej kolejności). Prostym przykładem jest osoba i jej paszport. Zawsze możemy być pewni, że to połączenie jest unikalne. Paszport może mieć tylko jednego posiadacza, a każda osoba może mieć tylko jeden ważny paszport.

One-to-many (has many). Każdy rekord w jednej tabeli może mieć wiele rekordów w innej tabeli. Podobnym przykładem jest nasza baza danych. Kraj może mieć wiele różnych miast, ale każde miasto może należeć tylko do jednego kraju. To jest właśnie połączenie, które wykonamy.

Many-to-many. Relacja, w której wielu rekordom z jednej tabeli może odpowiadać wiele rekordów z innej tabeli. Prostym przykładem jest relacja między nauczycielami a uczniami. Każdy nauczyciel może uczyć wielu uczniów, tak jak każdy uczeń może uczyć się od wielu różnych nauczycieli.

Was this article helpful?
Nadal szukasz odpowiedzi?