Foreign Keys ve İlişkisel Veritabanı Tasarımı
Ders 11: Foreign Keys ve İlişkisel Veritabanı Tasarımı
Section titled “Ders 11: Foreign Keys ve İlişkisel Veritabanı Tasarımı”Öğrenme Hedefleri
Section titled “Öğrenme Hedefleri”Bu dersi tamamladıktan sonra:
- Foreign key constraints tanımlayabileceksiniz
- CASCADE, RESTRICT gibi foreign key actions kullanabileceksiniz
- İlişkisel veritabanı tasarımı yapabileceksiniz
- defer_foreign_keys ile migration’lar yapabileceksiniz
İçerik
Section titled “İçerik”Foreign Key Tanımlama
Section titled “Foreign Key Tanımlama”CREATE TABLE users ( id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE);
CREATE TABLE posts ( id INTEGER PRIMARY KEY, user_id INTEGER NOT NULL, title TEXT NOT NULL, FOREIGN KEY(user_id) REFERENCES users(id));Foreign Key Actions
Section titled “Foreign Key Actions”-- CASCADE: Alt kayıtları da silCREATE TABLE comments ( post_id INTEGER, FOREIGN KEY(post_id) REFERENCES posts(id) ON DELETE CASCADE);
-- RESTRICT: Silmeyi engelleCREATE TABLE orders ( user_id INTEGER, FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE RESTRICT);Migration ile Foreign Key
Section titled “Migration ile Foreign Key”// Foreign key'leri geçici olarak kapatawait db.exec("PRAGMA defer_foreign_keys = ON");
// Schema değişikliğiawait db.exec("ALTER TABLE users ADD COLUMN age INTEGER");
// Yeniden açawait db.exec("PRAGMA defer_foreign_keys = OFF");✅ Foreign key tanımlama ✅ CASCADE, RESTRICT actions ✅ Migration stratejileri
Sonraki Ders
Section titled “Sonraki Ders”Local Development - Yerel geliştirme ortamı kurulumu.
Ders Süresi: 60 dakika Zorluk Seviyesi: Orta