v2.5.2
Giriş yap

Veritabanı Tasarım Önerisi?

munlu
981 defa görüntülendi

Merhaba arkadaşlar, öncelikle şuan hali hazırda güzellik salonum için bir satış takip sistemi yaptım.
Fakat benim yapmak istediğim daha detaylı bir durum çünkü şuan ki sistemde artık çok fazla aksaklık olmaya başladı ve sistem sıkıntı vermeye başladı.


Sistem Gereksinimleri

  • Müşteriler kendi panelinden satın aldıkları hizmetleri, kimden satın aldıklarını, satın aldıkları ürünlerin kaç taksitinin kaldığını. Hangi taksitleri ödeyip ödemediğini ve sistem üzerinden iyzico sanal pos sayesinde kredi kartı ile ödeme ve randevu oluşturma yapabilecekler.
  • Satış danışmanı üye kayıt, satış ekleme-çıkarma, ödeme takip(ekleme-çıkarma) yapabilecekler.
  • Yönetici hizmet ekleme-çıkarma, satış danışmanı ekleme-çıkarma, mali kayıtları görme, site istatistiklerini görme ve diğer tüm işlemleri yapabilecekler.
  • Ödeme takip kısmı ücretini ödemeyen müşterilere uyarı mesajı gitmesi - sistemde ödeme yapmayan üyeleri detaylı bir şekilde işlemlerine kadar gösterme.

Güncellenmiş sistem gereksinimleri tamamen bu şekildedir. Web ve Mobil üzerinden uygulamayı geliştireceğim için veritabanı tasarımı aşırı önemli. Çünkü satış işlemlerinde taksit seçeneği var ve ödemeleri şuan elle nakit şekilde alıyoruz. O yüzden sistemde nakit ve kredi kartı girdisi mevcut.

Benim tasarladığım veritabanı aşağıda ki şekildedir. Ödemeler toplasında satışta belirlenen taksit tutarı kadar o satiş id sine ait ödemelerin girdisi oluyor. Bu yüzden satış kısmında birden çok hatayla karşılaşabiliyorum. Sitede ki konularımdan bakabilirsiniz.

Ayrıyetten kapora muhabbeti de sistemde mevcuttur. Kayıt olan müşteri kapora verdiyse genel satıştan düşüp taksitlendirme yapılmaktadır.


Dükkan Tablosu

Müşteri Tablosu

Ödemeler Tablosu

Satışlar Tablosu

Ödeme Takip Tablosu

Ürünler Tablosu

Yönetim Tablosu


Birçok hatam olabilir siz değerli bilgili arkadaşlarımdan, abilerimden öğütler ve örnekler bekliyorum. Bende bu doğrultuda hatalarımı düzeltim daha sistematik bir uygulama geliştirmek istiyorum.

Sisteme kayıt alırken şu yöntemle şu verileri kayıt et gibi önerilerinize de açığım cevap veren, vermeyen herkese şimdiden teşekkür ederim.

mutluol
1502 gün önce

az çok bir şeyler canlanıyor insanın kafasında tablolara bakınca ama, siz kendi ihtiyacınıza uygun yaptığınız ve kendi anlayacağınız şekilde isimlendirdiğinizden, ilk bakışta sizin kadar tablo ve kolonları birbirleriyle sizin kadar iyi kurgulayamayız.

öncelikle int değerleri 11 karakter olmaz. int eksi ve + milyar değerine kadar sayı tutar bu da 10 karaktere denk gelir ve sayısal değerler tamsayıdır. örneğin bir telefon numarasını başında 0 ile post ettiğinizde, veritabanına farklı bir değer kaydeder. 0 olmadan post ettiğinizde telefon numarasını normal kaydeder. bu yüzden önce veri türünüzü doğru seçin. int 11 diye bir şey yok kısacası.

tarih verilerinide timestamp olarak vermenizi öneririm, ayrıca varsayılanı current yaparsanız daha az kod yazarsınız geçerli zamana ait tarihi kaydedeceği için. bu tarz sistemlerde tarih tek başına yeterli değildir, bazen saate de ihtiyac duyarsınız date ile saat kaydedemezsiniz. curent kullanımında php tarafında işlemin gerçekleşeceği sayfada zaman dilimi belirtmez iseniz, bilgisayarın tarih ve saatini alır. bilgisayarın tarih ve saati hatalıysa, girdi de hatalı olur.

yapıya gelirsek, o konuda bi tavsiye veremiyorum, kalın kafalıyım galiba biraz geç anlıyorum : ) ama soracağınız bir şeyi daha detaylı açıklarsanız, anladığım kadarıyla bildiğimde bir şey varsa yardımcı olmaya çalışırım.