ÇOK GÜZEL gidiyor elinize sağlık
detaylarına fırsat buldukça bakacağım
ancak daha sonra size sıkıntı yaratabilecek
bir konuyu madem işin başındasınız şimdiden
belirtmek istiyorum. Şu an yapılan YANLIŞ değildir
anlatacağım bir ÖNERİDİR
örneğin
musterıler tablosuna MUSTERI_ID koyuyoruz ( otomatik sayı ve anahtar )
policeler tablosuna da bunun bağlantısı olabilecek MUSTERI_ID ( sayı )
koyuyoruz buraya kadar bir problem yok
Bir sorgu üzerine her iki tabloyu çağırıp hesaplanmış bir alan ilştirdiğimizde örneğin şu kodu
yazdığımızda
Kod:
Hesaplananalan:IIf([MUSTERI_ID]>0;"Evet";"Hayır")
Bu nedenle kod aşağıdaki gibi olmalıdır
Kod:
Hesaplananalan:IIf([MUSTERILER.MUSTERI_ID]>0;"Evet";"Hayır")
musterıler tablosuna MUSTERI_ID
policeler tablosuna da bunun bağlantısı olabilecek POLICE_MUSTERI_ID
Sonuçta görsel ipucunu kaybetmeden ( hangi alan hangi alanla ilişkili olacaktı ? ) sonraki dertlerden kurtulursunuz
Sonuç olarak alan adları için tavsiyem aşağıdaki gibidir.
MUSTER_ID
POLICE_MUSTERI_ID
HAREKET_MUSTERI_ID .... gbi
Kolay gelsin
Çalışmanızda başarılar dilerim
Tablo işkilerinde 3. ( üçüncü ) onay kutusunu çok dikkatli kullanın !
Örneğin müşteri kartı silindiğinde poliçeleri de sil demişsiniz ki
bu olmamalıdır. Policeler sonuçta tek başına bir anlam ifade
kayıtlardır ( mesela artık çalışmadığınız bir müşterinin eski poliçeleri
yaşmalarını sürdürmelidir ) 3. onay kutusu tam da tersine bir can
simididir : ALTINDA POLİÇE KAYDI OLAN HİÇBİR MÜŞTERİ KAYDI YOK EDİLEMEZ
gibi ... Bu gibi önemli noktalarda 3. onay kutusunu boş bırakın
Poliçe taksit ilşkisinde ardarda silme işlemi
doğru olabilir ancak ben yinede kayıtların aşağıdan
yukarıya yok edilmesi taraftarıyım ; önce taksitler, sonra policeler
en son müşteriler
Bir uygulamanın başarısının anahtarı kullanıcının minimum
düzeyde zeki olduğunu varsaymaktan geçer
Kolay gelsin