Ana Sayfa Yazılım MySQL Veritabanı Şemaları Oluşturma

MySQL Veritabanı Şemaları Oluşturma

491
0

Yalnızca bir metin düzenleyici ve bu temel yapı taslağı veya “şema” ile kendi MySQL Veritabanı Şemaları oluşturun.

Bir yazılım projesi geliştirirken en önemli, temel ve içsel yönlerden biri, uygun şekilde hazırlanan bir veritabanı şemasıdır. Bu, bir ev inşa ederken, temelin düzgün bir şekilde atıldığından emin olmanız gerektiğine 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 tasarlanan bir veritabanı şeması yazmak için kullanılan çeşitli yönleri öğrenelim.

er02 2

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.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, dört sütundan oluşan users adlı bir veritabanı tablosu oluşturacaktır. Bu, CREATE TABLE ile başlar, ardından veritabanı tablolarının adı, ardından parantez içinde virgülle ayırt etmelisiniz. Tablo sütunları ile başlayan oldukça basit bir SQL ifadesi olmalıdır.

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

Yukarıda gösterildiği gibi, tablonun oluşturacağı sütunlara virgül konulmalı. 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, mySQL veritabanı şemaları yazmak için ihtiyacınız olan tek şey yukarıdaki sütun türleridir.

images 1 2

Sütun Seçeneklerini Tanımlayın

Sütunları tanımlarken de belirtebileceğiniz çeşitli seçenekler vardır. Aşağıda CREATE TABLE ifadesinin başka bir örneği verilmiştir:


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ünür, ancak endişelenmeyin, oldukça basit. 

  • 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ı olacaktır. Sütun boyutunu her zaman gerçekçi bir şekilde mümkün olduğunca küçük tutmaya çalışın.
  • Kimlik sütunu 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 tek satıra kolayca başvurabilirsiniz.
  • Durum sütunu 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.
  • Bakiye sütunu her yeni satır için 0’dan başlar. Ayrıca iki iki ondalık basamak olarak biçimlenmiş bir tutardır.
  • date_of_birth sütunu 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ütunu bir TIMESTAMP’dir ve varsayılan olarak satırın eklendiği geçerli saattir.

Yukarıdaki, güzel bir veritabanı tablosu örneğidir ve ileriye dönük bir örnekdir.

images

MySQL gibi ilişkisel veritabanlarını kullanmanın en büyük avantajlarından biri, 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, bu tablonun userid sütunu tarafından users tablosunun id sütunu olan üst satırına bağlanan alt satırları içerdiğini belirtir. Bunun anlamı, kullanıcılar tablosundan bir satır silindiğinde, mySQL, veritabanınız içinde yapısal bütünlüğün sağlanmasına yardımcı olmak için siparişler tablosundan ilgili tüm satırları otomatik olarak silecektir .

Ayrıca , yukarıdaki ifadenin sonundaki engine=InnoDB’ye dikkat edin. 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.

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.

Temel SQL komutlarıyla nasıl kullanacağınızı bildiğinizden emin olun.