Przewodnik dla początkujących dotyczący pisania schematów baz danych mySQL

Przewodnik dla początkujących dotyczący pisania schematów baz danych mySQL

Podczas opracowywania projektu oprogramowania jednym z najważniejszych, fundamentalnych i nieodłącznych aspektów jest odpowiednio skonstruowany schemat bazy danych. Jest to odpowiednik tego, kiedy budując dom, musisz upewnić się, że fundament jest prawidłowo położony, w przeciwnym razie szanse na zbudowanie domu wysokiej jakości są drastycznie zmniejszone.





Zaskakująco łatwiej niż mogłoby się wydawać, poznajmy różne aspekty używane do napisania dobrze zaprojektowanego schematu bazy danych.





jak obrócić wideo w Windows Media Player?

CREATE TABLE Składnia

Aby rozpocząć, otwórz swój ulubiony edytor tekstu . Tworzenie schematu bazy danych wymaga jedynie zwykłego pliku tekstowego. Baza danych składa się z wielu tabel, z których każda składa się z kolumn, a składnia CREATE TABLE służy do tworzenia pojedynczej tabeli. Oto podstawowy przykład:






CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

Jak widać, utworzy to tabelę bazy danych o nazwie użytkownicy który składa się z czterech kolumn . Powinno to być dość proste polecenie SQL zaczynające się od UTWÓRZ TABELĘ , po której następuje nazwa tabel bazy danych, a następnie w nawiasach kolumny tabeli oddzielone przecinkiem.

Użyj prawidłowych typów kolumn

Jak pokazano powyżej, kolumny, z których będzie się składać tabela, są oddzielone przecinkami. Każda definicja kolumny składa się z trzech takich samych części:



COL_NAME TYPE [OPTIONS]

Nazwa kolumny, po niej typ kolumny, a następnie dowolne parametry opcjonalne. Później przejdziemy do parametrów opcjonalnych, ale koncentrując się na typie kolumny, poniżej wymieniono najczęściej używane typy kolumn:

W każdym razie powyższe typy kolumn to wszystko, czego potrzebujesz, aby napisać dobrze skonstruowane schematy bazy danych mySQL.





Zdefiniuj opcje kolumn

Podczas definiowania kolumn można również określić różne opcje. Poniżej znajduje się kolejny przykład UTWÓRZ TABELĘ oświadczenie:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Powyższe może wyglądać trochę zniechęcająco, ale nie martw się, to dość proste. W podziale, oto co dzieje się w powyższym oświadczeniu:





  • Powinieneś zawsze używać NOT NULL we wszystkich możliwych kolumnach, aby pomóc w szybkości i wydajności tabeli. To po prostu określa, że ​​kolumna nie może pozostać pusta / null, gdy wstawiany jest wiersz.
  • Zawsze staraj się, aby rozmiar kolumny był możliwie jak najmniejszy, ponieważ pomaga to poprawić szybkość i wydajność.
  • ten NS kolumna jest liczbą całkowitą, jest również kluczem podstawowym tabeli, co oznacza, że ​​jest unikalna i będzie zwiększana o jeden za każdym wstawieniem rekordu. Powinno to być ogólnie stosowane we wszystkich tworzonych tabelach, dzięki czemu można łatwo odwoływać się do dowolnego wiersza w tabeli.
  • ten status kolumna jest ENUM i musi mieć wartość „aktywny” lub „nieaktywny”. Jeśli nie zostanie podana żadna wartość, nowy wiersz rozpocznie się ze statusem „aktywny”.
  • ten saldo kolumna zaczyna się od 0 dla każdego nowego wiersza i jest kwotą sformatowaną do dwóch miejsc po przecinku.
  • ten Data urodzenia kolumna jest po prostu DATĄ, ale pozwala również na wartość null, ponieważ data urodzenia może nie być znana podczas tworzenia.
  • Wreszcie, utworzony_w kolumna jest ZNACZNIKIEM CZASU i domyślnie wskazuje bieżący czas wstawienia wiersza.

Powyższe jest przykładem ładnie ustrukturyzowanej tabeli bazy danych i powinno być używane jako przykład w przyszłości.

Jedna z największych zalet korzystania z relacyjnych baz danych, takich jak: mySQL jest doskonałym wsparciem dla ograniczeń kluczy obcych i kaskadowania. Dzieje się tak, gdy łączysz dwie tabele razem za pomocą kolumny, tworząc relację nadrzędny-podrzędny, więc po usunięciu wiersza nadrzędnego niezbędne wiersze podrzędne są również automatycznie usuwane.

Oto przykład:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

Zauważysz klauzulę FOREIGN KEY jako ostatnią linię. Ten wiersz po prostu stwierdza, że ​​ta tabela zawiera wiersze podrzędne, które są połączone przez identyfikator użytkownika kolumna do ich wiersza nadrzędnego, którym jest NS kolumna użytkownicy Tabela. Oznacza to, że za każdym razem, gdy wiersz jest usuwany z użytkownicy tabeli, mySQL automatycznie usunie wszystkie odpowiednie wiersze z Zamówienia tabela pomagająca zapewnić integralność strukturalną w bazie danych.

Zwróć też uwagę na silnik=InnoDB na końcu powyższego oświadczenia. Chociaż InnoDB jest teraz domyślnym typem tabeli mySQL, nie zawsze tak było, więc należy go dodać, aby zachować bezpieczną stronę, ponieważ kaskadowanie działa tylko z tabelami InnoDB.

najpopularniejsza aplikacja na świecie

Projektuj z pewnością

Jesteś teraz na dobrej drodze do projektowania solidnych, dobrze ustrukturyzowanych schematów baz danych mySQL. Korzystając z powyższej wiedzy, możesz teraz pisać dobrze zorganizowane schematy, które zapewniają zarówno wydajność, jak i integralność strukturalną.

Po wdrożeniu schematu upewnij się, że wiesz, jak go używać z tymi podstawowe polecenia SQL .

Udział Udział Ćwierkać E-mail Jak wysyłać zapytania do wielu tabel bazy danych jednocześnie za pomocą złączeń SQL?

Dowiedz się, jak używać złączeń SQL, aby usprawnić zapytania, zaoszczędzić czas i sprawić, że poczujesz się jak zaawansowany użytkownik SQL.

Czytaj dalej
Powiązane tematy O autorze Matt Dizak(18 opublikowanych artykułów) Więcej od Matta Dizaka

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować