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 döşenmesini sağlamanız gereken duruma eşdeğerdir, aksi takdirde kaliteli bir ev inşa etme şansı büyük ölçüde azalır.

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

CREATE TABLE Sözdizimi

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


CREATE TABLE kullanıcıları (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NULL DEĞİL,
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şan. Bu, ile başlayan oldukça basit bir SQL ifadesi olmalıdır.

instagram viewer
TABLO OLUŞTURve ardından veritabanı tablolarının adı, ardından parantez içinde, virgülle ayrılmış tablonun sütunları.

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

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

COL_NAME TÜRÜ [SEÇENEKLER]

Sütunun adı, ardından sütun türü ve 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 mevcut en yaygın 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 belirleyebileceğiniz çeşitli seçenekler de vardır. Aşağıda başka bir örnek var TABLO OLUŞTUR Beyan:


CREATE TABLE kullanıcıları (
id INT NOT NULL PRIMARY ANAHTAR AUTO_INCREMENT,
kullanıcı adı VARCHAR (100) BOŞ EŞSİZ DEĞİL,
status ENUM ('etkin', 'etkin değil') DEĞİL NULL VARSAYILAN 'etkin',
denge ONDALIK (8,2) BOŞ DEĞİL VARSAYILAN 0,
date_of_birth DATETIME,
oluşturulan_at TIMESTAMP BOŞ DEĞİL VARSAYILAN CURRENT_TIMESTAMP
);

Yukarıdakiler biraz ürkütücü görünebilir, ancak üzülmeyin, oldukça basit. Aşağıda, 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 sadece bir satır eklendiğinde sütunun boş / boş bırakılamayacağını belirtir.
  • Hızı ve performansı artırmaya yardımcı olduğundan, sütun boyutunu her zaman mümkün olduğunca gerçekçi bir şekilde küçük tutmaya çalışın.
  • İD sütun bir tamsayıdır, aynı zamanda tablonun birincil anahtarıdır, yani benzersizdir ve her kayıt eklendiğinde bir artacaktır. Bu, genellikle oluşturduğunuz tüm tablolarda kullanılmalıdır, böylece tablo içindeki herhangi bir tek satıra kolayca başvurabilirsiniz.
  • statü sütunu bir ENUM'dur ve "etkin" veya "etkin değil" değerine sahip olmalıdır. Hiçbir değer belirtilmezse, yeni bir satır "aktif" durumuyla başlayacaktır.
  • denge sütun, her yeni satır için 0'dan başlar ve iki ondalık basamak şeklinde biçimlendirilmiş bir miktardır.
  • doğum tarihi sütunu yalnızca bir TARİH'dir, ancak doğum tarihi oluşturulduktan sonra bilinemeyebileceği için boş bir değere de izin verir.
  • Son olarak created_at sütun bir TIMESTAMP'tır ve varsayılan olarak satır eklendiğinde geçerli zamanı gösterir.

Yukarıdakiler, iyi yapılandırılmış bir veritabanı tablosunun bir örneğidir ve ileriye dönük bir örnek olarak kullanılmalıdır.

Gibi ilişkisel veritabanlarını kullanmanın en büyük avantajlarından biri mySQL yabancı anahtar kısıtlamaları ve kademelendirme için mükemmel bir destektir. Bu, iki tabloyu bir sütunla birbirine bağlayarak bir üst çocuk ilişkisi oluşturduğunuzda gerçekleşir, böylece üst satır silindiğinde gerekli alt satırlar da otomatik olarak silinir.

İşte bir örnek:


CREATE TABLE kullanıcıları (
id INT NOT NULL PRIMARY ANAHTAR AUTO_INCREMENT,
kullanıcı adı VARCHAR (100) BOŞ EŞSİZ DEĞİL,
full_name VARCHAR (100) NULL DEĞİL,
oluşturulan_at TIMESTAMP BOŞ DEĞİL VARSAYILAN CURRENT_TIMESTAMP
) motor = InnoDB;
TABLO siparişleri OLUŞTURMA (
id INT NOT NULL PRIMARY ANAHTAR AUTO_INCREMENT,
kullanıcı kimliği INT NOT NULL,
miktar ONDALIK (8,2) BOŞ DEĞİL,
product_name VARCHAR (200) BOŞ DEĞİL,
YABANCI ANAHTAR (kullanıcı kimliği) BAŞVURULAR kullanıcı (id) SİLME CASCADE'DE
) motor = InnoDB;

Son satır olarak FOREIGN KEY yan tümcesini göreceksiniz. Bu satır basitçe bu tablonun, tarafından bağlanan alt satırları içerdiğini belirtir. Kullanıcı kimliği üst satırına sütun, yani İD sütun kullanıcılar tablo. Bunun anlamı, her satır silindiğinde kullanıcılar mySQL, ilgili tüm satırları emirler veritabanınızda yapısal bütünlüğün sağlanmasına yardımcı olan tablo.

Ayrıca şunu unutmayın: motor = InnoDB Yukarıdaki ifadenin sonunda. InnoDB artık varsayılan mySQL tablo türü olmasına rağmen, her zaman değildi, bu nedenle, basamaklama yalnızca InnoDB tablolarıyla çalıştığından, bu yalnızca güvenli tarafta kalmak için eklenmelidir.

Güvenle Tasarım

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

Şemanız yerindeyken, şema ile nasıl kullanılacağını bildiğinizden emin olun temel SQL komutları.

E-posta adresi
SQL Birleştirmeleriyle Aynı Anda Birden Çok Veritabanı Tablosu Nasıl Sorgulanır

Sorguları kolaylaştırmak, zaman kazanmak ve kendinizi bir SQL uzman kullanıcısı gibi hissettirmek için SQL birleştirmelerini nasıl kullanacağınızı öğrenin.

İlgili konular
  • Belirtilmemiş
Yazar hakkında
Matt Dizak (18 Makale Yayınlandı)Matt Dizak'dan Daha Fazla

Haber bültenimize abone ol

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

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.