Nybegynderguide til at skrive mySQL -databaseskemaer

Nybegynderguide til at skrive mySQL -databaseskemaer

Når man udvikler et softwareprojekt, er et af de vigtigste, grundlæggende og iboende aspekter et korrekt struktureret databaseskema. Det svarer til, når du bygger et hus, du skal sikre, at fundamentet er korrekt lagt, ellers reduceres chancerne for at bygge et kvalitetshus drastisk.





Overraskende lettere end man skulle tro, lad os lære de forskellige facetter, der bruges til at skrive et velarkitieret databaseskema.





facebook tofaktorautentificering uden telefonnummer

Opret tabel Syntaks

For at begynde skal du åbne din foretrukne teksteditor. Oprettelse af et databaseskema kræver ikke mere end en ren tekstfil. En database består af flere tabeller, der hver består af kolonner, og syntaxen Opret tabel bruges til at oprette en enkelt tabel. Her er et grundlæggende eksempel:




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, vil dette oprette en databasetabel navngivet brugere som består af fire kolonner. Dette burde være en ret ligetil SQL -sætning, der begynder med Opret tabel , efterfulgt af navnet på databasetabellerne, inden for parenteser er kolonnerne i tabellen adskilt af et komma.

Brug korrekte kolonnetyper

Som vist ovenfor er de kolonner, tabellen består af, adskilt med kommaer. Hver kolonnedefinition består af de tre samme dele:



COL_NAME TYPE [OPTIONS]

Kolonnens navn efterfulgt af kolonnetypen og derefter eventuelle valgfrie parametre. Vi kommer ind på de valgfrie parametre senere, men koncentrerer os om kolonnetypen nedenfor viser de mest almindeligt anvendte kolonnetyper:

For alt i alt er ovenstående kolonnetyper alt, hvad du har brug for for at skrive godt konstruerede mySQL -databaseskemaer.





Definer kolonneindstillinger

Når du definerer kolonner, er der også forskellige muligheder, du kan angive. Nedenfor er et andet eksempel på Opret tabel udmelding:


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

Ovenstående kan se lidt skræmmende ud, men bekymre dig ikke, det er ret simpelt. Nedbrudt, her er hvad der sker i ovenstående erklæring:





  • Du bør altid bruge NOT NULL på alle mulige kolonner for at hjælpe med bordets hastighed og ydeevne. Dette angiver ganske enkelt, at kolonnen ikke må efterlades tom / null, når en række indsættes.
  • Prøv altid at holde kolonnestørrelsen så lille som realistisk muligt, da det hjælper med at forbedre hastighed og ydeevne.
  • Det id kolonne er et helt tal, er også den primære nøgle i tabellen, hvilket betyder, at den er unik og vil øges med en hver gang en post indsættes. Dette bør generelt bruges på alle tabeller, du opretter, så du nemt kan referere til enhver enkelt række i tabellen.
  • Det status kolonne er et ENUM og skal enten have værdien 'aktiv' eller 'inaktiv'. Hvis der ikke er angivet nogen værdi, begynder en ny række med status som 'aktiv'.
  • Det balance kolonne starter ved 0 for hver ny række og er et beløb, der er formateret to to decimaler.
  • Det fødselsdato kolonne er simpelthen en DATO, men tillader også en nullværdi, da fødselsdatoen muligvis ikke kendes ved oprettelsen.
  • Sidst, den oprettet_at kolonne er en TIMESTAMP og er som standard den aktuelle tid, da rækken blev indsat.

Ovenstående er et eksempel på en pænt struktureret databasetabel og skal bruges som et eksempel fremover.

En af de største fordele ved at bruge relationsdatabaser som f.eks mySQL er dens fremragende støtte til udenlandske nøglebegrænsninger og kaskader. Det er, når du forbinder to tabeller sammen af ​​en kolonne, der danner en forælderbarnsrelation, så når den overordnede række slettes, slettes de nødvendige underordnede rækker også automatisk.

Her er et eksempel:


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 vil bemærke FOREIGN KEY -klausulen som den sidste linje. Denne linje angiver ganske enkelt, at denne tabel indeholder underordnede rækker, der er forbundet med bruger ID kolonne til deres overordnede række, som er id kolonnen i brugere bord. Hvad dette betyder, er, at hver gang en række slettes fra brugere tabel, sletter mySQL automatisk alle tilsvarende rækker fra Ordre:% s tabel, der hjælper med at sikre strukturel integritet i din database.

Bemærk også motor = InnoDB i slutningen af ​​ovenstående erklæring. Selvom InnoDB nu er standard mySQL -bordtypen, var det ikke altid, så dette skal tilføjes bare for at forblive på den sikre side, da kaskader kun fungerer med InnoDB -borde.

hvordan man brænder iso -fil til usb

Design med tillid

Du er nu godt i gang med at opbygge solide, velstrukturerede mySQL -databaseskemaer. Ved hjælp af ovenstående viden kan du nu skrive velorganiserede skemaer, der giver både ydeevne og strukturel integritet.

Med dit skema på plads, skal du sikre, at du ved, hvordan du bruger det med disse vigtige SQL -kommandoer .

Del Del Tweet E -mail Sådan forespørges flere databasetabeller på én gang med SQL -tilslutninger

Lær, hvordan du bruger SQL -joins til at strømline forespørgsler, spare tid og få dig til at føle dig som en SQL -bruger.

Læs Næste
Relaterede emner Om forfatteren Matt Dizak(18 artikler udgivet) Mere fra Matt Dizak

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere