mySQL Veritabanı Şemaları Yazma Başlangıç ​​Kılavuzu

mySQL Veritabanı Şemaları Yazma Başlangıç ​​Kılavuzu

Bir yazılım projesi geliştirirken en önemli, temel ve içsel yönlerden biri, uygun şekilde yapılandırılmış bir veritabanı şemasıdır. Bu, bir ev inşa ederken temelin düzgün bir şekilde atıldığından emin olmanıza eşdeğerdir, aksi takdirde kaliteli bir ev inşa etme şansı büyük ölçüde azalır.





Düşündüğünden şaşırtıcı derecede kolay, iyi tasarlanmış bir veritabanı şeması yazmak için kullanılan çeşitli yönleri öğrenelim.





çevrimiçi birini bulmanın en iyi yolu

TABLO OLUŞTUR Sözdizimi

Başlamak için favori metin düzenleyicinizi açın. Bir veritabanı şeması oluşturmak, düz bir metin dosyasından başka bir şey gerektirmez. Bir veritabanı, her biri sütunlardan oluşan birden çok tablodan oluşur ve tek bir tablo oluşturmak için CREATE TABLE sözdizimi kullanılır. İşte temel bir örnek:






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

Gördüğünüz gibi bu, adında bir veritabanı tablosu oluşturacaktır. kullanıcılar dört sütundan oluşur. Bu, ile başlayan oldukça yalındır bir SQL ifadesi olmalıdır. TABLO OLUŞTUR , ardından veritabanı tablolarının adı, ardından parantez içinde virgülle ayrılmış tablo sütunları.

Doğru Sütun Türlerini Kullanın

Yukarıda gösterildiği gibi, tablonun oluşturacağı sütunlar virgülle ayrılır. Her sütun tanımı aynı üç bölümden oluşur:



COL_NAME TYPE [OPTIONS]

Sütunun adı, ardından sütun türü, ardından isteğe bağlı parametreler. İsteğe bağlı parametrelere daha sonra gireceğiz, ancak sütun türüne odaklanarak, aşağıda en sık kullanılan sütun türleri listelenmiştir:

Tüm amaçlar için, iyi yapılandırılmış mySQL veritabanı şemaları yazmak için ihtiyacınız olan tek şey yukarıdaki sütun türleridir.





Sütun Seçeneklerini Tanımlayın

Sütunları tanımlarken de belirtebileceğiniz çeşitli seçenekler vardır. Aşağıda başka bir örnek TABLO OLUŞTUR Beyan:


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

Yukarıdakiler biraz göz korkutucu görünebilir, ancak endişelenmeyin, oldukça basit. Kırılmış, işte yukarıdaki açıklamada neler oluyor:





  • Tablonun hızına ve performansına yardımcı olmak için her zaman mümkün olan tüm sütunlarda NOT NULL kullanmalısınız. Bu, bir satır eklendiğinde sütunun boş / boş bırakılamayacağını belirtir.
  • Hızı ve performansı artırmaya yardımcı olacağından, sütun boyutunu her zaman gerçekçi olarak mümkün olduğunca küçük tutmaya çalışın.
  • NS İD sütun bir tamsayıdır, aynı zamanda benzersiz olduğu anlamına gelen tablonun birincil anahtarıdır ve her kayıt eklendiğinde birer birer artar. Bu genellikle oluşturduğunuz tüm tablolarda kullanılmalıdır, böylece tablodaki herhangi bir satıra kolayca başvurabilirsiniz.
  • NS durum sütun bir ENUM'dur ve 'etkin' veya 'etkin değil' değerine sahip olmalıdır. Herhangi bir değer belirtilmezse, 'etkin' durumuyla yeni bir satır başlayacaktır.
  • NS denge sütun, her yeni satır için 0'dan başlar ve iki iki ondalık basamak olarak biçimlendirilmiş bir miktardır.
  • NS doğum tarihi sütun yalnızca bir TARİH'tir, ancak doğum tarihi oluşturulduktan sonra bilinmeyebileceğinden boş bir değere de izin verir.
  • Son olarak, create_at sütun bir TIMESTAMP'dir ve varsayılan olarak satırın eklendiği geçerli saattir.

Yukarıdaki, güzel yapılandırılmış bir veritabanı tablosu örneğidir ve ileriye dönük bir örnek olarak kullanılmalıdır.

İlişkisel veritabanlarını kullanmanın en büyük avantajlarından biri mySQL yabancı anahtar kısıtlamaları ve basamaklandırma için mükemmel desteğidir. Bu, iki tabloyu bir sütunla birbirine bağladığınızda bir üst çocuk ilişkisi oluşturur, böylece üst satır silindiğinde gerekli alt satırlar da otomatik olarak silinir.

İşte bir örnek:


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;

Son satır olarak FOREIGN KEY yan tümcesini göreceksiniz. Bu satır, basitçe, bu tablonun aşağıdakiler tarafından bağlanan alt satırları içerdiğini belirtir. Kullanıcı kimliği sütunu, üst satırına İD sütunu kullanıcılar tablo. Bunun anlamı şudur: kullanıcılar tablosunda, mySQL ilgili tüm satırları otomatik olarak silecektir. emirler veritabanınızda yapısal bütünlük sağlamaya yardımcı olan tablo.

Ayrıca not edin motor=InnoDB Yukarıdaki açıklamanın sonunda. InnoDB artık varsayılan mySQL tablo türü olsa da, her zaman böyle değildi, bu nedenle basamaklama yalnızca InnoDB tablolarıyla çalıştığından, bu yalnızca güvenli tarafta kalmak için eklenmelidir.

bilgisayarda podcast nasıl dinlenir

Güvenle Tasarım

Artık sağlam, iyi yapılandırılmış mySQL veritabanı şemaları tasarlama yolundasınız. Yukarıdaki bilgileri kullanarak, hem performans hem de yapısal bütünlük sağlayan iyi organize edilmiş şemalar yazabilirsiniz.

Şemanız yerindeyken, onu bunlarla nasıl kullanacağınızı bildiğinizden emin olun. temel SQL komutları .

Paylaş Paylaş Cıvıldamak E-posta SQL Joins ile Aynı Anda Birden Çok Veritabanı Tablosu Nasıl Sorgulanır

Sorguları kolaylaştırmak, zamandan tasarruf etmek ve kendinizi bir SQL uzmanı gibi hissetmenizi sağlamak için SQL birleşimlerini nasıl kullanacağınızı öğrenin.

Sonrakini Oku
İlgili konular Yazar hakkında Matt Dizak(18 Makale Yayınlandı) Matt Dizak'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın