Merhabalar, yeni başlayacağım projede tecrübe edinmediğim yönlendirmeye ihtiyaç duyduğum bir kaç konu var. Proje misafir kullanıcılara kapalı olacak ve veritabanı olarak MySQL kullanacağım..
1 - Proje tamamlandıktan sonra kiralanabilir olacak dolasıyla lisans yönetimine ihtiyacımız var. Tüm projeyi tek veritabanında mı kurgulamalıyım yoksa her lisans için ayrı bir alt adı gibi bir çözüme mi gitmeliyim? İçeriği basit bir e-ticaret yapısı gibi düşünebiliriz. Çok detaylı bir tablo içeriği olmayacak aslında fakat lisans sayısı arttıkça ve tüm işlemlerin kaydı alındığını düşünürsek bir süre sonra ciddi performans problemleri ile karşılaşacağımı düşünüyorum.
Alt alan adı aslında daha mantıklı görünüyor, her firmanın yüklediği dosyalar farklı sunucularda barınacak, veritabanı tek bir firmaya ait olduğu için daha temiz olacak fakat her yeni lisans oluşturma işleminde alt alan adı oluşturmak hantal bir çözüm gibi olacak diye düşünüyorum. Ayrıca alt alan adını oluşturacak teknik bilgiye sahip biri sürekli ilgilenmeli, her bir düzenleme/ekleme de tüm sunucularda pull etmek gerekecek. Gerekli sunucu konfigrasyonları ayrı ayrı yapılmalı ve öngöremediğim bir çok şeyle karşılaşacağım. Performans endişemi yenebilirsem bu seçenek çok geçerli olmayacak benim için, bu durumu tecrübe eden oldu mu acaba? Önerileriniz var mı?
2 - Bir diğer konu ise her lisansın kullanabildiği 2 veya 3 farklı modül olacak. Bu modüller lisans oluşturulurken seçilebilecek. Örneğin X ve Y modülü diyelim. X modülünü kullanan lisanslar için ürün oluşturma esnasında ürün kategorisini Giyim seçebilecek ve bu kategoriye özgü olan beden,renk,sezon gibi filtreleri girebilecek. Y modülü içinde Bilgisayar kategorisi gibi düşünelim. Y modülünü kullanan lisanslar da ram,işlemci,ekran kartı gibi kategoriye özgü filtreleri girebilecek.
Ürünleri filtreleme, raporlama gibi özelliklerin olacağını düşünürsek tablo yapısı nasıl olmalı? products
tablosu içerisinde type
sütunu ile ayırt edebileceğim şekilde tüm detayları ayrı ayrı sütunlarda veya tek sütunda array
formatında mı tutmalıyım? Yada her bir ürün için product_details
tablosunda ilişkilendireceğim şekilde bir yapı mı kurgulamalıyım? Ya da her kategoriyi cloth_products
, computer_products
gibi farklı tablolarda mı tutmalıyım? Ben product_details
tablosu ile ilişki kurarak ilerlemeyi tercih ettim genelde fakat bu proje de veri yoğunluğunu öngöremediğim için performans endişelerim var, ilişki kurarak ilerlediğim de filtrelemeler, raporlamalar, export/import işlemleri biraz gözümü korkutuyor.
Bu konularda tecrübe edinen var mı fikriniz nedir acaba?