• 29-09-2024, 20:27:12
    #1
    Merhabalar,
    React ile barkodlu satış sistemi yazmaya çalışıyorum. Veri tabanın nasıl yürütülmesi konusunda kafam biraz karıştı.


    Satış işlemi; nakit, pos, açık hesap, banka havalesi ve parçalı ödeme(Nakit+Pos) şeklinde gerçekleşiyor

    Her ödeme kanalının sayfasına girdiğinde Yapılan satışla ilgili son işlemleri tablo halinde gösteriyor.
    Ayrıca sayfada Günlük ve Aylık olarak toplam tutar ve satılan ürün adetini sabit olarak gösteriyor.

    Satış işlemi veri tabanına satis koleksiyonu altına kaydediliyor. Veriler de buradan çekiliyor ama harici olarak her ödeme kanalının verisi de kendi koleksiyonuna kayıt oluyor.
    Bu büyük projeler için mantıklı mı?
    Sadece satis koleksiyonuna kayıt olsa ve detaylı raporlamalar bu koleksiyondan çekilse performansı etkiler mi?

    Yani tam olarak olması gereken mantığı kavrayamadım.
    Şuan hem satis a hem de ödeme kanalına kayıt ediliyor.


    veri tabanı satis koleksiyonu içeriği


    banka koleksiyonu
  • 29-09-2024, 20:42:20
    #2
    Bence hepsini tek tabloda toplasan istediğin veriyi ona göre filtre ile çeksen daha iyi olmaz mı sürekli tablo tablo yerine tek tablo parçalı ödeme için BooleanField True yaparsın onuda ona göre filtrelersin Nakit ve KK tutar yerlerine de tutarları tutar kadar yazarsın oldu bitti gitti Bence, düşünün Ben olsam öyle yaparım sanırım.
    Veriyi çekerken zaten filtre koyarsın günlük diye db yi hiç kasmamış olur diye düşünüyorum.
  • 29-09-2024, 21:09:31
    #3
    Bu şekilde db yi çok mu kasar?
    bende tek dosyadan çekersem tüm yük tek dosyaya biner diye düşünmüştüm.
  • 29-09-2024, 21:34:07
    #4
    neden nosql mongodb? projeye yeni basladiysaniz bu yaklasimi bir daha dusunun. postgresql'i drizzle ile kullanirsaniz cok daha performansli bir yapi kurgulamis olursunuz.

    api istekleri icinde fetch, axios vs yerine honojs kullanmanizi siddetle tavsiye ederim.

    simdi sizin durumunuzu ele alirsak, anlatiginiz senaryoya gore 3 farkli tabloda veriyi tutmaniz gerekiyor.

    siparis toplamlari icin orders tablosu, yapilan odemeleri odeme tipi ve odeme miktarini tutan payments tablosu ve order id ile payment id tutan pivot tablo.

    bu sekilde tum verileri saglikli, kolayca ve max performansla yonetebilirsiniz.