Yazılım Mimarisi

Basit Bir Blog CMS İçin Veritabanı Tasarımı

Bir blog CMS veritabanı, yalnızca posts tablosundan oluşmaz. Tasarım; yazıların kim tarafından düzenlendiğini, taslak ve yayın durumunu, kategorileri, etiketleri ve geri alma ihtiyacını karşılamalıdır. İlk şemayı küçük kurup değişiklikleri migration ile sürümlemek daha kolaydır.

Temel tablolar

  • users: kimlik, ad, benzersiz e-posta ve parola karması. Düz metin parola saklamayın.
  • posts: yazar kimliği, başlık, benzersiz slug, içerik, durum, yayın tarihi ve zaman damgaları.
  • categories: ad ve benzersiz slug. Bir yazı birden çok kategorideyse category_post ara tablosu kullanın.
  • tags ve post_tag: etiketler için çoktan çoğa ilişki.
  • post_revisions: önceki içerik, düzenleyen kullanıcı ve düzenleme zamanı; geri alma gereksinimi varsa ekleyin.

İlişkiler ve indeksler

posts.author_id alanını users.id ile yabancı anahtar olarak ilişkilendirin. Yazı listesinde sık kullanılan status ve published_at alanlarına uygun indeks ekleyin. Her kolona indeks koymak yazma yükünü artırır; gerçek sorguları ölçün. Slug tekilliğinin tüm siteye mi yoksa kategoriye mi ait olacağını URL stratejisine göre baştan belirleyin.

Yayın akışı

Durumu draft, scheduled ve published gibi sınırlı değerlerle yönetin. Ziyaretçi sorguları yalnızca yayındaki ve zamanı gelmiş yazıları döndürmelidir. Taslak içeriğin API yanıtına sızmasını engelleyin. Kalıcı silme gerekmiyorsa arşiv veya geri alınabilir silme yaklaşımını değerlendirin.

Örnek sorgu ve test

“Son yayımlanan 20 yazı” sorgusunu, kategori filtrelemesini ve yazar sayfasını gerçek veri hacmiyle deneyin. Aynı slug’ın iki yazıya verilmesini, silinen kategori ilişkilerini ve saat dilimi farklarını test edin. Migration dosyaları ile yedekler birbirinin alternatifi değildir: şema ve veriyi ayrı koruyun.

Kaynak: Laravel migrations.

özgür BAYRAM

Özgür Bayram, WordPress, Laravel, yapay zekâ ve web performansı alanlarında çalışan bir yazılım geliştiricisidir. Bilim Meraklısı’nda teknoloji, yazılım, hosting, SEO ve dijital araçlar hakkında anlaşılır, uygulanabilir rehberler hazırlar. Amacı, teknik konuları sade bir dille anlatarak okuyucuların doğru kararlar vermesine ve sorunlarını güvenle çözmesine yardımcı olmaktır.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu