Beginnershandleiding voor het schrijven van mySQL-databaseschema's

Beginnershandleiding voor het schrijven van mySQL-databaseschema's

Bij het ontwikkelen van een softwareproject is een van de belangrijkste, fundamentele en intrinsieke aspecten een goed gestructureerd databaseschema. Het is het equivalent van wanneer je een huis bouwt dat je ervoor moet zorgen dat de fundering goed wordt gelegd, anders wordt de kans op het bouwen van een kwaliteitshuis drastisch verminderd.





Verrassend eenvoudiger dan je zou denken, laten we eens kijken naar de verschillende facetten die worden gebruikt om een ​​goed ontworpen databaseschema te schrijven.





hoe te markeren in adobe reader

CREATE TABLE Syntaxis

Open om te beginnen uw favoriete teksteditor. Voor het maken van een databaseschema is niets meer nodig dan een tekstbestand zonder opmaak. Een database bestaat uit meerdere tabellen, elk bestaande uit kolommen, en de CREATE TABLE-syntaxis wordt gebruikt om een ​​enkele tabel te maken. Hier is een eenvoudig voorbeeld:






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

Zoals u kunt zien, wordt hiermee een databasetabel gemaakt met de naam gebruikers die uit vier kolommen bestaat. Dit zou een vrij ongecompliceerde SQL-instructie moeten zijn die begint met MAAK TAFEL , gevolgd door de naam van de databasetabellen en vervolgens tussen haakjes de kolommen van de tabel gescheiden door een komma.

Gebruik de juiste kolomtypen

Zoals hierboven weergegeven, worden de kolommen waaruit de tabel zal bestaan, gescheiden door komma's. Elke kolomdefinitie bestaat uit drie dezelfde delen:



COL_NAME TYPE [OPTIONS]

De naam van de kolom, gevolgd door het kolomtype en vervolgens eventuele optionele parameters. We zullen later ingaan op de optionele parameters, maar concentrerend op het kolomtype, worden hieronder de meest gebruikte kolomtypes weergegeven:

In alle opzichten zijn de bovenstaande kolomtypen alles wat u nodig hebt om goed geconstrueerde mySQL-databaseschema's te schrijven.





Kolomopties definiëren

Bij het definiëren van kolommen zijn er ook verschillende opties die u kunt specificeren. Hieronder is nog een voorbeeld van de MAAK TAFEL uitspraak:


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

Het bovenstaande ziet er misschien een beetje ontmoedigend uit, maar maak je geen zorgen, het is vrij eenvoudig. Uitgesplitst, hier is wat er gebeurt in de bovenstaande verklaring:





  • U moet altijd NOT NULL gebruiken op alle mogelijke kolommen om de snelheid en prestaties van de tabel te helpen. Dit geeft eenvoudig aan dat de kolom niet leeg / null kan worden gelaten wanneer een rij wordt ingevoegd.
  • Probeer altijd de kolomgrootte zo klein als realistisch mogelijk te houden, omdat dit de snelheid en prestaties helpt verbeteren.
  • De ID kaart kolom is een geheel getal, is ook de primaire sleutel van de tabel, wat betekent dat deze uniek is, en wordt met één verhoogd elke keer dat een record wordt ingevoegd. Dit moet over het algemeen worden gebruikt voor alle tabellen die u maakt, zodat u gemakkelijk naar elke enkele rij in de tabel kunt verwijzen.
  • De toestand kolom is een ENUM en moet de waarde 'actief' of 'inactief' hebben. Als er geen waarde is opgegeven, begint een nieuwe rij met de status 'actief'.
  • De evenwicht kolom begint bij 0 voor elke nieuwe rij en is een bedrag dat is opgemaakt met twee cijfers achter de komma.
  • De geboortedatum kolom is gewoon een DATUM, maar laat ook een null-waarde toe, omdat de geboortedatum mogelijk niet bekend is bij het maken.
  • Als laatste, de gemaakt bij kolom is een TIMESTAMP en is standaard ingesteld op de huidige tijd waarop de rij werd ingevoegd.

Het bovenstaande is een voorbeeld van een mooi gestructureerde databasetabel en zou in de toekomst als voorbeeld moeten worden gebruikt.

Een van de grootste voordelen van het gebruik van relationele databases zoals: mijnSQL is de uitstekende ondersteuning voor externe sleutelbeperkingen en cascadering. Dit is wanneer u twee tabellen aan elkaar koppelt door een kolom, waardoor een bovenliggende kindrelatie ontstaat, dus wanneer de bovenliggende rij wordt verwijderd, worden de benodigde onderliggende rijen ook automatisch verwijderd.

Hier is een voorbeeld:


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;

U zult de FOREIGN KEY-clausule opmerken als de laatste regel. Deze regel geeft eenvoudig aan dat deze tabel onderliggende rijen bevat die zijn gekoppeld door de gebruikersnaam kolom naar hun bovenliggende rij, dat is de ID kaart kolom van de gebruikers tafel. Dit betekent dat elke keer dat een rij wordt verwijderd uit de gebruikers tabel, zal mySQL automatisch alle corresponderende rijen uit de bestellingen tabel die helpt bij het waarborgen van de structurele integriteit binnen uw database.

Let ook op de engine=InnoDB aan het einde van de bovenstaande verklaring. Hoewel InnoDB nu het standaard mySQL-tabeltype is, was dit niet altijd het geval, dus dit zou voor de zekerheid moeten worden toegevoegd, aangezien cascadering alleen werkt met InnoDB-tabellen.

is het veilig om uit China te bestellen?

Ontwerp met vertrouwen

U bent nu goed op weg om solide, goed gestructureerde mySQL-databaseschema's te ontwerpen. Met behulp van de bovenstaande kennis kunt u nu goed georganiseerde schema's schrijven die zowel prestaties als structurele integriteit bieden.

Zorg ervoor dat u weet hoe u het met deze kunt gebruiken, met uw schema op zijn plaats essentiële SQL-opdrachten .

Deel Deel Tweeten E-mail Meerdere databasetabellen tegelijk opvragen met SQL-joins

Leer hoe u SQL-joins gebruikt om query's te stroomlijnen, tijd te besparen en u het gevoel te geven dat u een krachtige SQL-gebruiker bent.

Lees volgende
Gerelateerde onderwerpen Over de auteur Matt Dizak(18 artikelen gepubliceerd) Meer van Matt Dizak

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren