Nybörjarguide för att skriva mySQL -databasscheman

Nybörjarguide för att skriva mySQL -databasscheman

När man utvecklar ett mjukvaruprojekt är en av de viktigaste, grundläggande och inneboende aspekterna ett korrekt strukturerat databasschema. Det motsvarar när du bygger ett hus du behöver för att säkerställa att grunden läggs ordentligt, annars minskar chansen att bygga ett kvalitetshus drastiskt.





Förvånansvärt lättare än man skulle tro, låt oss lära oss de olika aspekterna som används för att skriva ett välarkitierat databasschema.





hur man konverterar bild till vektor i illustrator

SKAPA TABELL Syntax

Börja med att öppna din favorit textredigerare. Att skapa ett databasschema kräver inget mer än en vanlig textfil. En databas består av flera tabeller, var och en består av kolumner, och syntaxen SKAPA TABELL används för att skapa en enda tabell. Här är ett grundläggande exempel:






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
);

Som du kan se skapas en databastabell med namnet användare som består av fyra kolumner. Detta bör vara en ganska rak SQL -sats som börjar med SKAPA BORD , följt av namnet på databastabellerna, och inom parentes är tabellens kolumner åtskilda med ett kommatecken.

Använd rätt kolumntyper

Som visas ovan separeras kolumnerna som tabellen består av med kommatecken. Varje kolumndefinition består av de tre samma delarna:



COL_NAME TYPE [OPTIONS]

Kolumnens namn, följt av kolumntypen, sedan eventuella valfria parametrar. Vi kommer in på de valfria parametrarna senare, men med koncentration på kolumntypen nedan listas de vanligaste tillgängliga kolumntyperna:

För alla avsikter är ovanstående kolumntyper allt du behöver för att skriva välbyggda mySQL -databasscheman.





Definiera kolumnalternativ

När du definierar kolumner finns det också olika alternativ du kan ange. Nedan är ett annat exempel på SKAPA BORD påstående:


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
);

Ovanstående kan se lite skrämmande ut, men oroa dig inte, det är ganska enkelt. Nedbrutet, här är vad som händer i ovanstående uttalande:





  • Du bör alltid använda NOT NULL på alla möjliga kolumner för att hjälpa till med tabellens hastighet och prestanda. Detta anger helt enkelt att kolumnen inte kan lämnas tom / null när en rad infogas.
  • Försök alltid att hålla kolumnstorleken så liten som realistiskt möjligt, eftersom det hjälper till att förbättra hastighet och prestanda.
  • De id kolumn är ett heltal, är också tabellens huvudnyckel, vilket betyder att den är unik och kommer att öka med en varje gång en post infogas. Detta bör vanligtvis användas på alla tabeller du skapar så att du enkelt kan referera till en rad i tabellen.
  • De status kolumnen är ett ENUM och måste antingen ha värdet 'aktivt' eller 'inaktivt'. Om inget värde anges, börjar en ny rad med statusen 'aktiv'.
  • De balans kolumn börjar med 0 för varje ny rad, och är ett belopp som är formaterat med två två decimaler.
  • De födelsedatum kolumn är helt enkelt ett DATUM men möjliggör också ett nollvärde eftersom födelsedatum kanske inte är känt vid skapandet.
  • Sist, den skapad vid kolumnen är en TIMESTAMP och är som standard den aktuella tiden när raden infogades.

Ovanstående är ett exempel på en snyggt strukturerad databastabell och bör användas som ett exempel framöver.

En av de största fördelarna med att använda relationsdatabaser som t.ex. mySQL är dess utmärkta stöd för utländska nyckelbegränsningar och kaskad. Det här är när du länkar ihop två tabeller med en kolumn och bildar en förälderbarnsrelation, så när den överordnade raden raderas raderas också de nödvändiga underraderna automatiskt.

Här är ett exempel:


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;

Du kommer att märka klausulen FOREIGN KEY som den sista raden. Denna rad anger helt enkelt att den här tabellen innehåller underordnade rader som är länkade av användar ID kolumn till deras överordnade rad, vilket är id kolumnen i användare tabell. Vad detta betyder är att varje rad som raderas från användare tabell raderar mySQL automatiskt alla motsvarande rader från order tabell för att säkerställa strukturell integritet i din databas.

Observera också motor = InnoDB i slutet av ovanstående uttalande. Även om InnoDB nu är standard mySQL -tabelltyp, var det inte alltid, så detta bör läggas till bara för att vara på den säkra sidan, eftersom kaskad bara fungerar med InnoDB -bord.

hur man ändrar ljusstyrkan på skärmen

Design med förtroende

Du är nu på god väg att skapa solida, välstrukturerade mySQL -databasscheman. Med hjälp av ovanstående kunskap kan du nu skriva välorganiserade scheman som ger både prestanda och strukturell integritet.

Med ditt schema på plats, se till att du vet hur du använder det med dessa viktiga SQL -kommandon .

Dela med sig Dela med sig Tweet E-post Hur man frågar flera databastabeller samtidigt med SQL -kopplingar

Lär dig hur du använder SQL -kopplingar för att effektivisera frågor, spara tid och få dig att känna dig som en SQL -användare.

Läs Nästa
Relaterade ämnen Om författaren Matt Dizak(18 artiklar publicerade) Mer från Matt Dizak

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera