---
title: PostgreSQL Table Design
category: product
entity_type: skill
price: ₺369
canonical: https://forgehouse.ai/tr/skiller/postgresql-table-design/
lang: tr
hreflang_alt: https://forgehouse.ai/skills/postgresql-table-design/
last_updated: 2026-06-20
---

# PostgreSQL Table Design

> Design a PostgreSQL-specific schema.

Veri tipleri, indeksleme, kısıtlar, performans desenleri ve gelişmiş özellikleri kapsayan PostgreSQL'e özgü bir şema tasarım disiplini, yük altında ayakta kalan bir şema ile zamanla şişip yavaşlayan bir şema arasındaki fark. Veritabanının gerçek tuzaklarını (FK sütunları otomatik indekslenmez, UNIQUE birden çok NULL'a izin verir, kimlik boşlukları normaldir) ve indekslerde tahmin-etme-ölç yaklaşımını kodlar. Karşılığı hızlı sorgular, güvenilir veri ve emin şekilde dağıtabileceğiniz şema değişiklikleri.

## Ne için kullanılır
- Temel ilkelerden 3NF'de yeni bir şema tasarlama
- Doğru indeks türünü seçme (B-tree, GIN, GiST, BRIN, kısmi, kapsayan)
- Para, zaman, JSONB, dizi ve aralıkları doğru tiplerle modelleme
- Çok büyük tabloları aralık, liste veya hash ile bölümleme
- Yoğun güncelleme ve yoğun ekleme yüklerini ayarlama
- Eşzamanlı indeksler ve bloklamayan DDL ile şemayı güvenli evrimleştirme

## Faydalar
- Veritabanı katmanında zorlanan veri bütünlüğü; böylece hatalar ve ham SQL durumu bozamaz
- Yalnızca gerçekten çalıştırdığınız erişim yollarını indeksleyerek daha hızlı sorgular
- Kullanılmayan indeksleri kaldırıp erken denormalizasyondan kaçınarak daha düşük depolama ve yazma maliyeti
- Tam tablo yeniden yazımı ve bloklayan kilitlerden kaçınan daha güvenli göçler

## Ne içerir
- Açık kullanma-listesiyle veri tipi rehberi (timestamp, char(n), money, serial kullanma)
- Kısıt desenleri: PRIMARY KEY, FOREIGN KEY eylemleri, UNIQUE NULLS NOT DISTINCT, CHECK, EXCLUDE
- B-tree, kompozit, kapsayan, kısmi, ifade, GIN, GiST, BRIN genelinde indeksleme rehberi
- Bölümleme stratejileri ve global benzersizlik ile FK sınırlamaları
- Yoğun güncelleme, yoğun ekleme ve upsert tasarımları için yüke özgü ayar
- İşlemsel DDL ve CONCURRENTLY indeks kurulumuyla güvenli şema evrim kuralları

## Kimler için
PostgreSQL şemalarının hızlı, dayanıklı ve güvenle evrimleştirilebilir olmasını isteyen arka uç mühendisleri ve veritabanı yöneticileri için.

## Nasıl çalışır
Skill'in tek bir migration gönderilmeden önce her tablo için kolon kolon yürüdüğü tasarım döngüsü. Kara kutu yok, yaptığı iş tam olarak bu:
1. Her kolon dört soruya cevap vermek zorunda: hangi okuma sorgusu kullanıyor, NULL anlamsal olarak ne demek, ne sıklıkta güncelleniyor ve kardinalitesi ne. Cevap veremeyen kolon silinir, çünkü gerekçesiz kolon şişkinliğe, ölü indekse ve yavaş vacuum'a dönüşür.
2. Tip disiplini pazarlıksızdır: anahtarlar için BIGINT identity, zaman için TIMESTAMPTZ, varchar(n) yerine CHECK kısıtlı TEXT, para için NUMERIC. Yasaklı tip listesi (zaman dilimi olmayan timestamp, char(n), money, serial) incelemede uygulanır.
3. Önce 3NF'e normalize edilir, denormalizasyon yalnızca kanıtla yapılır: bir sıcak yol EXPLAIN ANALYZE'da 100ms üzeri join maliyeti göstermeden hiçbir önbellek kolonu eklenmez, veri kopyalamadan önce materialized view denenir.
4. Kısıt savunması katman katman kurulur: şema seviyesinde NOT NULL artı CHECK, açık ON DELETE davranışlı foreign key ve elle eklenen FK indeksi (Postgres FK kolonlarını kendiliğinden indekslemez), tek null tek satır demekse NULLS NOT DISTINCT ile UNIQUE.
5. İndeks serpiştirilmez, hak edilir: yalnızca EXPLAIN ANALYZE ile yavaşlığı kanıtlanan sorgular indeks alır, uyduğu yerde partial ve covering indeks tercih edilir, aylık pg_stat_user_indexes incelemesi sıfır taramalı her indeksi düşürür.
6. Canlıya çıktıktan sonra şema gerçek trafikle gelişmeye devam eder: pg_stat_statements'ın en ağır 20 sorgusu haftalık incelenir, bölümleme yalnızca tutarlı bir filtre anahtarıyla yaklaşık 100 milyon satırı geçince devreye alınır.

## Sık sorulanlar
### Zaten üretimde bir şemam var, bu yalnızca sıfırdan tasarım için mi?
Hayır. Güvenli şema evrimi işin çekirdeğidir: eşzamanlı indeks kurulumları, bloklamayan DDL, kullanılmayan indeksleri kaldırma ve yoğun güncelleme ile yoğun ekleme tabloları için yüke özgü ayar, hepsi yük altındaki sistemlere uygulanır. Sıfırdan 3NF tasarımı da kapsanır ama eldekiyle yaşamak da.

### Hangi indeksleri eklemem gerektiğine nasıl karar veriyor?
Tahmin etme, ölç: gerçekten çalıştırdığınız erişim yollarını indeksleyin, kullanım verisiyle doğrulayın, kullanılmayanı kaldırın. Rehber B-tree, kompozit, kapsayan, kısmi, ifade, GIN, GiST ve BRIN türlerini kapsar; yabancı anahtar sütunlarının Postgres'te otomatik indekslenmediği klasik tuzağı da kodlar.

### MySQL veya başka veritabanlarına uygulanır mı?
Hayır, bu bilinçli bir tercihtir. Değer tam da PostgreSQL'e özgü davranıştadır: birden çok NULL'a izin veren UNIQUE, normal olan kimlik boşlukları, CONCURRENTLY indeks kurulumu, kullanılmayacak tip listesi. MySQL'e çevirmek orada düpedüz yanlış olan tavsiyeleri taşırdı.

## Fiyat
₺369, tek seferlik, abonelik yok. KDV dahil.

İlgili rehber: [Yapay zekâ ile veri analitiği](https://forgehouse.ai/tr/rehberler/yapay-zeka-veri-analitigi/)
