0Pricing
SQL Academy · Ders

Anahtarları ve Türleri Seçme

Birincil anahtarlar için BIGSERIAL ve UUID arasında seçim yapın, TEXT ile VARCHAR(n) arasında karar verin ve her sütun için doğru türü seçin.

Anahtarları ve Türleri Seçme, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Birincil Anahtar Seçme

Üç gerçek seçenek vardır:

  1. BIGSERIAL — monotonik olarak artan 64 bit tam sayı
  2. UUID — 128 bitlik küresel olarak benzersiz değer
  3. Doğal anahtar — gerçek dünyadaki bir tanımlayıcı (e-posta, ISBN)

BIGSERIAL Ne Zaman Öne Çıkar

Çoğu uygulama için varsayılan seçim:

  • Küçüktür (8 bayt), dizini hızlıdır ve önbellek dostudur
  • Monotoniktir → yeni veriler dizinin sonunda kümelenir
  • URL'lerde okunabilirdir (ör. /posts/42)

UUID Ne Zaman Öne Çıkar

Şu durumlarda UUID seçin:

  • Küresel olarak benzersiz kimliklere ihtiyacınız varsa (çoklu veri merkezi, çevrimdışı öncelikli uygulamalar)
  • URL'lerdeki kimliklerin iş hacmini açığa çıkarmasını istemiyorsanız
  • Kimliği ekleme işleminden önce istemci tarafında oluşturmak istiyorsanız

Maliyeti 16 bayttır (BIGINT için 8 bayta kıyasla) ve v4 UUID'leri dizindeki eklemeleri rastgele dağıtır.

Doğal Anahtarlar Neden Risklidir

E-posta adresleri değişir. SKU'lar yeniden adlandırılır. Ülke kodları bölünür. PK olarak bir vekil anahtar kullanın ve doğal anahtar üzerinde UNIQUE kısıtı oluşturun.

Sütun Türleri: Dizeler

Çoğu metin sütunu için:

  • VARCHAR(n) — kesin bir üst sınırınız olduğunda (e-postalar, kodlar)
  • TEXT — serbest biçimli, uzun içerikler için
  • CITEXT — karşılaştırma her zaman büyük/küçük harf duyarsız olmalıysa (e-postalar!)

Sütun Türleri: Sayılar

Sayısal sütunlar için:

  • Kimlikler ve sayaçlar için BIGINT
  • Para için NUMERIC(p, s)
  • Yalnızca bilimsel hesaplamalar için REAL/DOUBLE PRECISION

Sütun Türleri: Zaman

Zaman sütunları için:

  • Olaylar için TIMESTAMPTZ (varsayılan)
  • Takvim günleri için DATE (doğum günleri, tatiller)
  • Tarih içermeyen gün içindeki saat için TIME (mağazanın açılış saatleri)

Boole ve Durum

Bir sütunun gelecekte ikiden fazla durumu olacaksa boolean yerine durum metni + CHECK kullanmayı tercih edin:

-- Will probably grow:
status TEXT NOT NULL CHECK (status IN ('draft','published','archived'))

-- vs the trap of "is_published BOOLEAN" when you later need a third state.

Kısıt Kontrol Listesi

Her sütunda şunlar bulunmalıdır:

  • Uygun olan en dar tür
  • NULL bir anlam taşımıyorsa NOT NULL
  • Sütun çoğunlukla aynı değeri alıyorsa bir DEFAULT
  • Bir alan kuralı varsa bir CHECK
  • WHERE/JOIN/ORDER içinde kullanılıyorsa bir dizin

Depolama Sonuçları

Dar türler = daha küçük satırlar = sayfa başına daha fazla satır = daha iyi önbellek isabet oranı. TEXT türünü VARCHAR(20) türüne dönüştürmek alan kazandırmaz (depolama aynıdır). BIGINT türünü INT türüne dönüştürmek sütun genişliğini yarıya indirir.

Yabancı Anahtar Türleri Eşleşmelidir

FK sütun türleri, başvurulan PK türüyle tam olarak eşleşmelidir:

-- Wrong (silently won't use the index efficiently):
user_id INT REFERENCES users(id)   -- where users.id is BIGINT

-- Right:
user_id BIGINT REFERENCES users(id)

Özet

Tür seçimi tasarımdır.

  • PK için BIGSERIAL veya UUID
  • Para için NUMERIC
  • Olaylar için TIMESTAMPTZ
  • Değişen durumlar için CHECK'li TEXT
  • Varsayılan olarak NOT NULL

Hızlı Kontrol

Birçok saat dilimindeki kullanıcılar için olay zaman damgalarını saklıyorsunuz. Hangi türü seçmelisiniz?

Sıkça Sorulan Sorular

“Anahtarları ve Türleri Seçme” dersi ücretsiz mi?

Evet — “Anahtarları ve Türleri Seçme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Anahtarları ve Türleri Seçme” dersinde ne öğreneceğim?

Birincil anahtarlar için BIGSERIAL ve UUID arasında seçim yapın, TEXT ile VARCHAR(n) arasında karar verin ve her sütun için doğru türü seçin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Anahtarları ve Türleri Seçme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Bir Blogu Modelleme: Kullanıcılar, Gönderiler, Yorumlar
  2. Anahtarları ve Türleri Seçme
  3. Yaygın Sorgular için İndeksler
  4. Test Verileriyle Veritabanını Doldurma
← SQL Academy Sayfasına Dön