Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 355
Kayıt: 10 Nis 2006 08:07

Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen kahraman1285 » 19 Oca 2019 02:46

Merhaba

Kasa Cari hesap ve taksit işlemleri için şu şekilde tablo hazırladım. Fakat olaya yaklaşım tarzımın doğru olup olmadığı konusunda değerli fikirlerinize ihtiyacım var.

Kasa Tablosu:

Kod: Tümünü seç

CREATE TABLE KASA (
    ID          INTEGER GENERATED BY DEFAULT AS IDENTITY,
    CARI_KOD    INTEGER,
    CARI        VARCHAR(30),
    TARIH       DATE NOT NULL,
    SAAT        TIME NOT NULL,
    ODEME_TIPI  VARCHAR(10) NOT NULL,
    KALEM       VARCHAR(25),
    GIRIS       DECIMAL(15,2),
    CIKIS       DECIMAL(15,2),
    ACIKLAMA    BLOB SUB_TYPE 1 SEGMENT SIZE 250
);
Burada Carı sutunu opsiyonel kullanıcı kasaya DEVİR işlemeleri için Cari seçmek istemediğinde Devir,Nakit çekimi gibi ifadeler yazabilmesi için eklendi.
cari_kod ise cari tablosundan isim bilgisini almak için. Ödeme tipi Nakit , kart vb...Açıklama memo text.

Cari Hesap tablosu ise şöyle :

Kod: Tümünü seç

REATE TABLE CARI_HESAP (
    ID        INTEGER GENERATED BY DEFAULT AS IDENTITY,
    CARI_KOD  INTEGER NOT NULL,
    BORC      DECIMAL(15,2),
    ALACAK    DECIMAL(15,2),
    BAKIYE    DECIMAL(15,2),
    TOPLAM    DECIMAL(15,2),
    TARIH     DATE NOT NULL,
    SAAT      TIME,
    TUR       VARCHAR(30) COLLATE UNICODE_CI,
    ACIKLAMA  BLOB SUB_TYPE 1 SEGMENT SIZE 250
);
Taksit Tablosu.

Kod: Tümünü seç

CREATE TABLE TAKSIT (
    ID             INTEGER GENERATED BY DEFAULT AS IDENTITY,
    CARI_HESAP_ID  INTEGER,
    TUTAR          DECIMAL(15,2),
    DURUM          INTEGER,
    TARIHI         DATE,
    ODEME_TARIHI   DATE
);

Vadeli satışlar tablosu:

Kod: Tümünü seç

CREATE TABLE TAKSIT (
    ID             INTEGER GENERATED BY DEFAULT AS IDENTITY,
    CARI_HESAP_ID  INTEGER,
    TUTAR          DECIMAL(15,2),
    DURUM          INTEGER,
    TARIHI         DATE,
    ODEME_TARIHI   DATE
);

Vadeli satışlar için ayrı tablo hazırladım taksitli olmayan satışlar ve vadeli borçları bu tabloya yazmayı planladım.

Hazırladığım tablolarda eksik yada fazlalık var mı? Tecrübelerinize binaen değerlendirir misiniz?

İyi Çalışmalar.

smokie
Üye
Mesajlar: 69
Kayıt: 01 Tem 2007 09:26

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen smokie » 20 Oca 2019 12:05

Merhaba,

Cari tabloda borç, alacak, bakiye, toplam alanları ve Kasa tabloda giriş çıkış yerine bir alan ile takip etmeni önerebilirim. Borç ise artı Alacak ise eksi kayıt yaparsın.

Vadeli satışlar ve taksitli satışlar için ayrıca bir tabloya gerek olduğunu düşünmüyorum.
Cari detay tablosu ile bunların hepsini takip edebilirsin.

İyi Çalışmalar.

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2140
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen freeman35 » 20 Oca 2019 07:46

tasarımda join kullanacağını hesapla. tabloları primarykey ler le bağla. datetime varken neden iki field kullanıyorsun(date ve time). CARI_KOD, CARI_HESAP da vaken kasa da ne işi var? ahmet kaç para ödemiş sorusunun sql li yaz bakalım nasıl yazabileceksin? Tablolarını böyle gelecek sorulara göre tasarla
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

kahraman1285
Üye
Mesajlar: 355
Kayıt: 10 Nis 2006 08:07

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen kahraman1285 » 20 Oca 2019 08:01

freeman35 yazdı:
20 Oca 2019 07:46
tasarımda join kullanacağını hesapla. tabloları primarykey ler le bağla. datetime varken neden iki field kullanıyorsun(date ve time). CARI_KOD, CARI_HESAP da vaken kasa da ne işi var? ahmet kaç para ödemiş sorusunun sql li yaz bakalım nasıl yazabileceksin? Tablolarını böyle gelecek sorulara göre tasarla
CARI_KOD (müşteri nu) kasa tablosunda olmadan işlemin kime ait olduğunu nasıl bulacağım? carı hesap tablosunda ise tüm hareketleri tutmayı planlamıştım. vadeli alacak ve borçları da dahil.

Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2140
Kayıt: 12 Haz 2003 03:05
Konum: merkez camii yanı

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen freeman35 » 21 Oca 2019 10:44

kahraman1285 yazdı:
20 Oca 2019 08:01
freeman35 yazdı:
20 Oca 2019 07:46
tasarımda join kullanacağını hesapla.
CARI_KOD (müşteri nu) kasa tablosunda olmadan işlemin kime ait olduğunu nasıl bulacağım?
Primary key olan field, değeri değiştirilen bir field OLAMAMALI.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!

yusuf simsek
Üye
Mesajlar: 309
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen yusuf simsek » 21 Oca 2019 11:16

Hayırlı Haftalar, Hayırlı İşler,

Nacizane önerim;
- Kasa Tablosundan Cari_Kod ve Cari bilgisini kaldır, CARIHESAPID (INTEGER) ve ACIKLAMA VARCHAR(255) ekle; Gerektiğinde CARIHESAPID ile Cari Hareket, Cari Hesap Tablosu CARIID alanı ile de CariKart Tablosuna JOIN atarsın.... Açıklama alanını da Sen ya da kullanıcın geniş geniş kullanır... ( Yusuf ŞİMŞEK Tahsilat... )

Kod: Tümünü seç

SELECT * 
FROM KASA K
LEFT JOIN CARI_HESAP CH ON CH.ID = K.CARIHESAPID
LEFT JOIN CARI_KART CK ON CK.ID = CH.CARIKARTID
- Cari Hesap Tablosunda BAKİYE alanı KULLANMAN senin işini epeyce zorlaştırır... Geçmiş tarihli bir Tahsilat ya da Borç kaydı olduğunda ilgili tarih sonrası için tüm BAKİYE alanlarını yeniden hesaplayıp güncellemen lazım... Bu işlem için veritabanından bir sorgu ( procedure ya da view ) oluşturman seni rahatlatacaktır...

- Taksit ve Vade aynı seylerdir... Sen 3 taksitli işlemi TAKSİT, 1 taksitli işlem için de VADE tablosu oluşturuyorsun...
Taksit tablona bir de ODEME_TUTAR alanı eklemende fayda var... Müşteri Taksit Tutarından Eksik ya da Fazla ödeme yapabiliyor...

İyi çalışmalar dilerim
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

kahraman1285
Üye
Mesajlar: 355
Kayıt: 10 Nis 2006 08:07

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen kahraman1285 » 21 Oca 2019 01:44

Cevaplariniz icin teswkkur ederim @ freeman @smokie,@yusufsimsek.
Cari kod sutunu musteriyi bulmak icin eklemistim isim de hata yapmis olabilirim. Sizin bahsettiginiz Cari hesapid sutunu musteriyi bulmak icin mi? @yusufsimsek

Kasa hesabi haricinde tum vadeli islemleri sadece tek tabloda mi tutayim?

Musteri gecmisini sorgulanmak istediginde kasa bi tablo ve cari hesap hareketi de bi tablo olarak mi tasarlanmali. Sadece iki tablo ile mi tum buisleri yapmaliyim ?

İyi calismalar.
Cepden yazdim.klavye ing.

yusuf simsek
Üye
Mesajlar: 309
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Kasa,Cari Hesap Taksit tabloların tasarımı ve ilişkisi hk.

Mesaj gönderen yusuf simsek » 21 Oca 2019 04:15

CARIHESAPID alanı Kasa tablosu ile CARİHESAP tablosunu ilişkilendirmek için...

Müşteriden tahsilat yaptığınızda CariHesap tablosu ve Kasa tablosunun her ikisine de kayıt yapıyorsunuz...

Önce CariHesap tablosuna kayıt yapıyorsunuz, CariHesap Tablosu ID değerini de KASA tablosunda oluşturacağınız CariHesapId alanına ekleyerek gerektiğinde verilere ulaşabiliyorsunuz...
kahraman1285 yazdı:
21 Oca 2019 01:44
Kasa hesabi haricinde tum vadeli islemleri sadece tek tabloda mi tutayim?
işinizi kolaylaştırmış olursunuz
Musteri gecmisini sorgulanmak istediginde kasa bi tablo ve cari hesap hareketi de bi tablo olarak mi tasarlanmali. Sadece iki tablo ile mi tum buisleri yapmaliyim ?
Müşteri Geçmişini sadece CariHeap tablosundan sorgulayacaksınız... ilave olarak Tahsilat kaydı kasaya giriş olarak işleyecek...

Yatırdığınız Elektrik, Su, Doğalgaz vb faturaları da kasadan çıkış olacak... Bu kayıtları Cari Hesap tablosunda tutmanın doğru olmayacağını düşünüyorum...

İyi çalışmalar dilerim
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Cevapla