birden fazla depo mantığı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
birden fazla depo mantığı
arkadaşlar merhaba, tek depo mantığı ile çalışan stok depo programımı çoklu depo yapısına dönüştürmek istiyorum. her deponun stok miktarları ve hareketleri farklı olabilir ama neticede ana bi dosyada hepsini tutmak istiryorum çalışma esnasında yeni depolar açılacak şekilde mantığını çözemedim . yardımcı olursanız sevinirim
Re: birden fazla depo mantığı
her deponun stoğunu ayrı ayrı tutabilmek için depo hareketlerını gerceklestırdıgın evraklara depo kodu getırmelısın
mesela stok faturası keserken fatura ust bılgısınde stok cıkısının hangı depodan oldugunu sectırmelısın.
mesela stok faturası keserken fatura ust bılgısınde stok cıkısının hangı depodan oldugunu sectırmelısın.
Re: birden fazla depo mantığı
aslında bu söylediğini yaptım şu anda, stok tablom var aynı şekilde depo tanımlarının yapıldığı depo tablomda mevcut, girişleri yatırırkende depo kodunu alarak hangi depoya mal girmiş hangisinden çıkmış bunların hepsini yaptırıyorum ama şöyle bişe takıldı kafama, şimdi bi stok kartını açtığımız zaman o stok kartındaki ürünlerden hangi depoda kaç tane var bunları görmek istediğimde giriş-çıkış yapılan bütün tablolaların hepsinde sorgulatma yapmam gerekecek, faturalar-stok fişleri-depolar arası transferler-perakende satışlar yani hepsini sorgulatınca hangi depoda kaçtane ürün var , bunu görmek istediğimde sorgular zaman alacak , hele kayıtlar bi çoğalmaya başlarsa hepten yavaşlayacaktır, bu konudaki fikirlerinizide almak isterim
Re: birden fazla depo mantığı
madem ki her işlemi farklı tablolardan takip ediyorsun, STOKDEPO diye bir tablo oluşturup depolarda stokların son durumunu bu tablodan takip edebilirsin...
DepoId,StokId,Miktar şeklinde 3 alanı olan bir tablo... işlem türü ne olursa olsun herhangi bir stok giriş/çıkış durumunda bu tabloda güncelleme yaparsın...
stok giriş çıkış işlemlerinde bir fazla işlem yapmış olursun ama depo bazlı stok durumu için de sadece bu tablodan bir tek sorgu yapman yeterli olur...
DepoId,StokId,Miktar şeklinde 3 alanı olan bir tablo... işlem türü ne olursa olsun herhangi bir stok giriş/çıkış durumunda bu tabloda güncelleme yaparsın...
stok giriş çıkış işlemlerinde bir fazla işlem yapmış olursun ama depo bazlı stok durumu için de sadece bu tablodan bir tek sorgu yapman yeterli olur...
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
Re: birden fazla depo mantığı
öncelikle cevabınız için teşekkür ederim.unicorn64 yazdı:madem ki her işlemi farklı tablolardan takip ediyorsun, STOKDEPO diye bir tablo oluşturup depolarda stokların son durumunu bu tablodan takip edebilirsin...
DepoId,StokId,Miktar şeklinde 3 alanı olan bir tablo... işlem türü ne olursa olsun herhangi bir stok giriş/çıkış durumunda bu tabloda güncelleme yaparsın...
stok giriş çıkış işlemlerinde bir fazla işlem yapmış olursun ama depo bazlı stok durumu için de sadece bu tablodan bir tek sorgu yapman yeterli olur...
evet çok haklısınız fakat buradada şöyle bi sıkıntı mevcut, her yeni depo kaydı açıldığında stok dosyasında kaç tane stok kaydı varsa tabloda o kadar yeni kayıt eklemek gerekecek
diyelimki stok dosyasında 10.000 kalem ürün olsun 2 depo olsa sizin belirttiğiniz yöntem ile yeni depo açılır açılmaz 10.000 kalem ürünü tabloda her iki depo içinde tanımlamak gerekecek, yani 20.000 kayıt eder, 10 depo olduğunda 100.000 kayıt yapacak bu durumda database aşırı şişecek
Re: birden fazla depo mantığı
her üründen her bir depoda mutlaka bulunması durumunda evet 10000 stok ve 10 depo için 100000 kayıt edecek,
(depoda olmayan stok için tabloda kayıt tutmaya gerek yok sonuçta) ama sadece 3 alan olacağı için çok da şişireceğini sanmam...
ihtiyacınızı karşılamak için 2 yol geliyor aklıma;
1.si bahsettiğim gibi depolardaki stok miktarlarını bir tabloda tutmak.
2.si tüm stokl giriş/çıkış kayıtlarınızda depoyu belirtmek ve bakiye için tüm tablolar üzerinden toplama çıkarma yapıp sum almak.
(depoda olmayan stok için tabloda kayıt tutmaya gerek yok sonuçta) ama sadece 3 alan olacağı için çok da şişireceğini sanmam...
ihtiyacınızı karşılamak için 2 yol geliyor aklıma;
1.si bahsettiğim gibi depolardaki stok miktarlarını bir tabloda tutmak.
2.si tüm stokl giriş/çıkış kayıtlarınızda depoyu belirtmek ve bakiye için tüm tablolar üzerinden toplama çıkarma yapıp sum almak.
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
Re: birden fazla depo mantığı
unicorn64 yazdı:her üründen her bir depoda mutlaka bulunması durumunda evet 10000 stok ve 10 depo için 100000 kayıt edecek,
(depoda olmayan stok için tabloda kayıt tutmaya gerek yok sonuçta) ama sadece 3 alan olacağı için çok da şişireceğini sanmam...
ihtiyacınızı karşılamak için 2 yol geliyor aklıma;
1.si bahsettiğim gibi depolardaki stok miktarlarını bir tabloda tutmak.
2.si tüm stokl giriş/çıkış kayıtlarınızda depoyu belirtmek ve bakiye için tüm tablolar üzerinden toplama çıkarma yapıp sum almak.
aslında stok tablosuna 10 tane depo alanı eklesem ve her deponun miktarlarını bu alanlarda saklasam stabil olur ancak ileride yeni depo açmak gerektiğinde bu 10 alanı artırmak gerekcek buda çok dinamik bi yapı oluşturmaz, bunun yerine 2. öneriniz yani halihazırdaki sistemi devam ettirmek daha mantıklı görünüyor. ilgnize teşekkür ederim. bu konuda diğer forumdaşlarında fikirlerini almak isterim. neticede piyasada bu tip çalışan bir sürü program var eminim aramızda daha önce bu sorunla karşılaşanda olmuştur. yeni önerilere açığım.
Re: birden fazla depo mantığı
Merhaba;
Aslında dediğin gibi stok tablosuna 10 adet alan açarak giren ve çıkan adetleri otomatik arttırıp eksilterek bu işi çözebilirsin ama unicorn64 un dediği gibi yapman daha mantıklı olacaktır zira veritabanı tasarımlarında mutlak suretle o şekilde yapılmaktadır. Alan açarsan sadece "ya bi depo daha eklememiz lazım" dendiğinde hiç yoktan bi sürü kod yazman gerekir. Benim başıma geldi çünkü zamanında, "sadece 4 depomuz var" gerek yok depoyu bizim tanımlamamıza dediler, 2 yıl sonra şirket büyüdü, 6 depo daha oldu, il ikisinde alan ekledim önce sonra baktım ardı arkası kesilmiyo komple değiştirdim, 2. bi tabloda tutmaya başladım çok şükür hala bi sorunla karşılaşmadan kullanıyolar ve istedikleri gibi depo ekleyip silebiliyolar. Bende 500 kalem civarı ürün vardı en son sanırım 12 adet depo tanımlıydı, 500*12=6000 kayıt yapar veritabanı paradoxtu zaten hiç dokunmadım bi daha.
Aslında dediğin gibi stok tablosuna 10 adet alan açarak giren ve çıkan adetleri otomatik arttırıp eksilterek bu işi çözebilirsin ama unicorn64 un dediği gibi yapman daha mantıklı olacaktır zira veritabanı tasarımlarında mutlak suretle o şekilde yapılmaktadır. Alan açarsan sadece "ya bi depo daha eklememiz lazım" dendiğinde hiç yoktan bi sürü kod yazman gerekir. Benim başıma geldi çünkü zamanında, "sadece 4 depomuz var" gerek yok depoyu bizim tanımlamamıza dediler, 2 yıl sonra şirket büyüdü, 6 depo daha oldu, il ikisinde alan ekledim önce sonra baktım ardı arkası kesilmiyo komple değiştirdim, 2. bi tabloda tutmaya başladım çok şükür hala bi sorunla karşılaşmadan kullanıyolar ve istedikleri gibi depo ekleyip silebiliyolar. Bende 500 kalem civarı ürün vardı en son sanırım 12 adet depo tanımlıydı, 500*12=6000 kayıt yapar veritabanı paradoxtu zaten hiç dokunmadım bi daha.
Re: birden fazla depo mantığı
esistem yazdı:Merhaba;
Aslında dediğin gibi stok tablosuna 10 adet alan açarak giren ve çıkan adetleri otomatik arttırıp eksilterek bu işi çözebilirsin ama unicorn64 un dediği gibi yapman daha mantıklı olacaktır zira veritabanı tasarımlarında mutlak suretle o şekilde yapılmaktadır. Alan açarsan sadece "ya bi depo daha eklememiz lazım" dendiğinde hiç yoktan bi sürü kod yazman gerekir. Benim başıma geldi çünkü zamanında, "sadece 4 depomuz var" gerek yok depoyu bizim tanımlamamıza dediler, 2 yıl sonra şirket büyüdü, 6 depo daha oldu, il ikisinde alan ekledim önce sonra baktım ardı arkası kesilmiyo komple değiştirdim, 2. bi tabloda tutmaya başladım çok şükür hala bi sorunla karşılaşmadan kullanıyolar ve istedikleri gibi depo ekleyip silebiliyolar. Bende 500 kalem civarı ürün vardı en son sanırım 12 adet depo tanımlıydı, 500*12=6000 kayıt yapar veritabanı paradoxtu zaten hiç dokunmadım bi daha.
sistem zaten unicorn64 arkadaşın dediği gibiydi bunun bir dezavantajı kayıt sayısı arttığı zaman sorgulamalar uzun sürecek, sorgu zamanını minimuma indirmek için araştırma yapıyorum. sorgulamalarda bu süre için yardımcı ne yapılabilir onları düşünüyorum. database e indexler eklemek, basit sql cümleleri vs. bakalım artık nasıl olacak. cevaplar için teşekkürler
Re: birden fazla depo mantığı
stok hareketlerinin olduğu tabloyu birleştirin, Hareket ayrımı için hareket tipi diye bir alan ekleyerek orada takip edin.
İşte;
Fatura için F,
Depo transferi için D,
Devir için A,
v.s. gibi.
sorgularınızı buradan çekerken bir group by yeter.
İşte;
Fatura için F,
Depo transferi için D,
Devir için A,
v.s. gibi.
sorgularınızı buradan çekerken bir group by yeter.
Bir kelimenin anlamını öğretsen bile yeter..
Re: birden fazla depo mantığı
Merhaba;
Sistem zaten o şekildeyse hiçbişiden çakinmene gerek yok, 100K kayıtta üstelik 3 integer alanlı ve yine üstelik indexli bi taloda SQL ile ile yanıt alman saniye sürmez, ama mesela "x stoğundan kaç adet satmışım" veya "Y stoğundan kaç adet depolar arası sevkiyat yapmışım" gibi bi rapor için gidip tablodaki kayıt sayısını count() ile çekiyosan makinayı boşa yorarsın bence.
Benim STOK tablom alanları şöyleydi, KOD, ADI vs. , GIREN, CIKAN, SEVK_GIREN (depolar arası), SEVK_CIKAN (Depolar arası)
stok hareket tablom da KOD, STOK_KODU, TURU (alış,satış,sevk giris(Depolar arası),sevk cikis(Depolar arası),sair çıkış) şeklindedir. Yapılan her işlemi hareket tablosuna kaydettikten sonra STOK tablosundaki alanların değerlerini arttırıp azaltarak rahatça görüyodum. Ama tabi satış raporu alırken haliyle dediğin sorguları yapman lazım.
Sistem zaten o şekildeyse hiçbişiden çakinmene gerek yok, 100K kayıtta üstelik 3 integer alanlı ve yine üstelik indexli bi taloda SQL ile ile yanıt alman saniye sürmez, ama mesela "x stoğundan kaç adet satmışım" veya "Y stoğundan kaç adet depolar arası sevkiyat yapmışım" gibi bi rapor için gidip tablodaki kayıt sayısını count() ile çekiyosan makinayı boşa yorarsın bence.
Benim STOK tablom alanları şöyleydi, KOD, ADI vs. , GIREN, CIKAN, SEVK_GIREN (depolar arası), SEVK_CIKAN (Depolar arası)
stok hareket tablom da KOD, STOK_KODU, TURU (alış,satış,sevk giris(Depolar arası),sevk cikis(Depolar arası),sair çıkış) şeklindedir. Yapılan her işlemi hareket tablosuna kaydettikten sonra STOK tablosundaki alanların değerlerini arttırıp azaltarak rahatça görüyodum. Ama tabi satış raporu alırken haliyle dediğin sorguları yapman lazım.
Re: birden fazla depo mantığı
bendeki yapı biraz farklı,esistem yazdı:Merhaba;
Sistem zaten o şekildeyse hiçbişiden çakinmene gerek yok, 100K kayıtta üstelik 3 integer alanlı ve yine üstelik indexli bi taloda SQL ile ile yanıt alman saniye sürmez, ama mesela "x stoğundan kaç adet satmışım" veya "Y stoğundan kaç adet depolar arası sevkiyat yapmışım" gibi bi rapor için gidip tablodaki kayıt sayısını count() ile çekiyosan makinayı boşa yorarsın bence.
Benim STOK tablom alanları şöyleydi, KOD, ADI vs. , GIREN, CIKAN, SEVK_GIREN (depolar arası), SEVK_CIKAN (Depolar arası)
stok hareket tablom da KOD, STOK_KODU, TURU (alış,satış,sevk giris(Depolar arası),sevk cikis(Depolar arası),sair çıkış) şeklindedir. Yapılan her işlemi hareket tablosuna kaydettikten sonra STOK tablosundaki alanların değerlerini arttırıp azaltarak rahatça görüyodum. Ama tabi satış raporu alırken haliyle dediğin sorguları yapman lazım.
çalışan program üzerinde değişik modüller var, alış-satış faturaları, perakende satış, depolar arası transfer- devir miktarları- (sisteme sonradan ilave edilen araç-takip-digital baskı gibi normal bi programın içinde olmayan fakat gelen talepler doğrultusunda stok dosyasıyla entegre çalışan bölümler var) - bunların hepsini tek dosyada toplama şansım yok mecburen stok hareketlerini ya tek tek sorgulatacığım yada bi tablo açıp oraya yapılan işlemleri özet halinde tutup tek bi sorgu ile çekeceğim