From: Gurkan Aslan (gurkan@iaslan.com)
Date: Wed 10 Mar 2004 - 07:12:42 EST
Content-Type: text/plain; charset=iso-8859-9
Content-Transfer-Encoding: quoted-printable
On Wed, 2004-03-10 at 13:45, Serdar K=D6YL=DC wrote:
> Selamlar..
>=20
> Hard-coding bu durumlar icin pek iyi cozum olmayabilir. Bence bunu
> cozmek uzere veritabaninda alinmasi gereken bilgileri tutun, bunlari
> almak uzere bir dinamik form olusturun. Bu karisik gorunebilir ama
> inanin ki daha kolay ve anlasilir olacaktir. X tane ayrik interface'i
> duzgunce handle etmek cok daha zor olabilir.
>=20
> Yada daha kisa ama kotu yol olarak, bunlari bir DLL (veya benzeri) icine
> koyun. dlopen ile bu DLL(ler) den yukleyip kullanin.
>=20
> Yok eger, illaki if (kurum =3D=3D temizlik) ... diyerek gidecegim
> diyorsaniz, bunlari hic veritabanina koymayin, enum olarak kodunuzun
> icine gomun.=20
>=20
> Saygi ve sevgiler..
>=20
=D6nce Sayg=FDlar...
Ayn=FD fikri payla=FE=FDyorum... Az =F6nce de buna yak=FDn alternatifler
s=F6yleyecektim ama vazge=E7tim, siz vazge=E7memi=FEsiniz iyi de etmi=FEsin=
iz...
Ben de vaz ge=E7ti=F0im fikrimi dile getireyim o halde:
E=F0er benzeri =FEekilde =E7ok fazla altertanif durumunuz s=F6zkonusuysa
kendinize ait bir s=FDn=FDf hiyerar=FEisiyle beraber b=FCt=FCn sorunlar=FDn=
=FDza uzun
vadeli k=F6kl=FC bir =E7=F6z=FCm getirebilirsiniz.. Hatta bu s=FDn=FDf=FD a=
yr=FD bir
unitte tutarsan=FDz kodunuz sizin a=E7=FDn=FDzdan daha okunakl=FD ve d=FCze=
nli olmu=FE
olur... Bir revizyon s=F6zkonusu oldu=F0unda da sadece ilgili kodu revize
edersiniz...
Tabii b=FCt=FCn bu s=F6ylediklerim e=F0er Nesne tabanl=FD yaz=FDl=FDm
geli=FEtiriyorsan=FDz ge=E7erli... Alternatif "type" tan=FDmlar=FD gibi =E7=
=F6z=FCmler
de i=FEinizi g=F6r=FCr ama nereye kadar...
> > Content-Type: text/plain
> > Content-Transfer-Encoding: quoted-printable
> > On Wed, 2004-03-10 at 13:12, Fuat Altun wrote:
> >=20
> > > Tamamiyle iliskisel bi veri tabani :)
> > >=3D20
> >=20
> > Isin nesnel kismiyla ilgili dusunduklerimden vaz gectim cunku cok
> > zamaninizi alir... Bu durumda geriye tek bir secenek kaliyor: Ilk dort
> > veriye dokunulmasina izin vermeyin ve verdiginiz ID'ye gore islem yapin
> > (Madem onlar ozel ve degismeyecek)...
> >=20
> > >=3D20
> > > -----Original Message-----
> > > From: Gurkan Aslan [mailto:gurkan@iaslan.com]=3D3D20
> > > Sent: Wednesday, March 10, 2004 12:25 PM
> > > To: linux-programlama@www.linux.org.tr
> > > Subject: [linux-programlama] Re: veritabani tasarimi (konu disi)
> > >=3D20
> > > On Wed, 2004-03-10 at 10:52, Fuat Altun wrote:
> > > > =3D3D3DD6ncelikle tesekkurler,
> > > > Salih bey'in maili okunamiyor...
> > > > Tekrar gonderebilirse sevinirim.
> > > > Gurkan bey..
> > > > Alanim zaten auto-increment.
> > > > Fakat benim otomatik verilen kodlarin datasina bakip kaynak koda =
=3D3D3D
> > > > eklemem
> > > > canimi sikiyor :)
> > > >=3D3D20
> > > > 4 tane kod ozel anlami olacak..
> > > > cunku diger kodlarda (yaklasik 96 kod icin) ayni veri giris ekranin=
in
> > > > cagiracagim.
> > > > Fakat bu dort tanesi icin farkli farkli veri girisi ekranlarini =3D=
3D3D
> > > > cagiracagim
> > > > Yani if bloklarinda yapacagim islem bu.
> > > >=3D3D20
> > >=3D20
> > > Hmmm s=3D3DF6yledikleriniz kafamda bir=3D3DFEeyler canland=3D3DFDrd=
=3D3DFD ama =3D
> > =3D3D
> > > olabiletisi i=3D3DE7in
> > > =3D3DFEunu soraca=3D3DF0=3D3DFDm: Nesne Tabanl=3D3DFD program m=3D3DF=
D yaz=3D3DFDyors=3D
> > unuz? =3D3D
> > > Veritaban=3D3DFDn=3D3DFDz
> > > RDBMS destekli bir veritaban=3D3DFD m=3D3DFD?
> > >=3D20
> > >=3D20
> > > > Saygilar
> > > >=3D3D20
> > > >=3D3D20
> > > >=3D3D20
> > > > -----Original Message-----
> > > > From: Gurkan Aslan [mailto:gurkan@iaslan.com]=3D3D3D20
> > > > Sent: Wednesday, March 10, 2004 10:34 AM
> > > > To: linux-programlama@www.linux.org.tr
> > > > Subject: [linux-programlama] Re: veritabani tasarimi (konu disi)
> > > >=3D3D20
> > > > On Wed, 2004-03-10 at 10:02, Fuat Altun wrote:
> > > > > Merhabalar,
> > > > > =3D3D3D20
> > > >=3D3D20
> > > > Merhaba
> > > >=3D3D20
> > > > >=3D3D3D20
> > > > > Tablo1 isimli tablomda hizmet_kodlari adinda bir alanim var. =3D=
3D
> > > Burada
> > > > > yaklasik 100 adet hizmet turu kodu var. (temizlik hizmeti, yemek =
=3D3D
> > > =3D3D3D
> > > > hizmeti,
> > > > > bakicilik hizmeti vs.)
> > > > >=3D3D3D20
> > > > > Sorunuma gelince;
> > > > >=3D3D3D20
> > > > > Bu hizmet_kodlarindan bazilarini ozel olarak kod icinde kullanmam=
=3D3D
> > > =3D3D3D
> > > > gerek.
> > > > > Fakat ben bunun yanlis bir yol oldugunu dusunuyorum. Yani veriyi =
=3D3D
> > > =3D3D3D
> > > > kaynak
> > > > kod
> > > > > icinde barindirmak bana hatali geliyor.
> > > > >=3D3D3D20
> > > > > sizce bu yaklasimim dogrumu? Cunku kodlar her zaman degisebilir. =
=3D3D
> > > Yani
> > > > bunlar
> > > > > il_kodundaki gibi plaka no degil.
> > > > >=3D3D3D20
> > > > > Kisaca,
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > if (hizmet_kodu=3D3D3D3D=3D3D3D3D56) //cicek bakimi hizmeti
> > > > >=3D3D3D20
> > > > > {
> > > > >=3D3D3D20
> > > > > ..........
> > > > >=3D3D3D20
> > > > > ..........
> > > > >=3D3D3D20
> > > > > }
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > seklinde olursa dogru olmaz diye dusunuyorum.
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > >=3D3D20
> > > > Do=3D3D3DF0ru d=3D3D3DFC=3D3D3DFE=3D3D3DFCn=3D3D3DFCyorsun.. Yani b=
u =3D3D3DFEekild=3D
> > e =3D3D
> > > olmas=3D3D3DFD do=3D3D3DF0ru bir =3D3D3D
> > > > yakla=3D3D3DFE=3D3D3DFDm de=3D3D3DF0il...
> > > > Daha dinamik bir yakla=3D3D3DFE=3D3D3DFDm sergilemek gerek...
> > > >=3D3D20
> > > > >=3D3D3D20
> > > > > Bunun yerine bu ozel kodlar icin baska boolean degiskenler =3D3D
> > > tanimlamak
> > > > dogru
> > > > > bir yontem olabilirmi?
> > > > >=3D3D3D20
> > > >=3D3D20
> > > > Elbette bu da bir y=3D3D3DF6ntem...
> > > >=3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > Yani tablo1 tablosunun icinde
> > > > > bebek_hizmetimi,bakicilik_hizmetimi,ev_hizmetimi gibi alanlar =3D=
3D3D
> > > > tanimlayip
> > > > >=3D3D3D20
> > > > > Kaynak kod icinde su sekilde kullanmak daha dogru olabilirmi?
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > if (cicek_hizmetimi=3D3D3D3D=3D3D3D3Dtrue) //cicek bakimi hizmeti
> > > > >=3D3D3D20
> > > > > {
> > > > >=3D3D3D20
> > > > > ..........
> > > > >=3D3D3D20
> > > > > ..........
> > > > >=3D3D3D20
> > > > > }
> > > > >=3D3D3D20
> > > > > bu durumda fazladan 3-4 tane daha boolean degisken tanimlamam =3D=
3D3D
> > > > gerekecek
> > > > > tabii.
> > > > >=3D3D3D20
> > > >=3D3D20
> > > > :) =3D3D3DDDyi gidiyorsunuz... Belki de biraz daha d=3D3D3DFC=3D3D3=
DFE=3D3D3DFC=3D
> > nseniz =3D3D
> > > maili =3D3D3D
> > > > silip sorunu
> > > > =3D3D3DE7=3D3D3DF6zm=3D3D3DFC=3D3D3DFE olacakt=3D3D3DFDn=3D3D3DFDz.=
..
> > > >=3D3D20
> > > > Burada o if bloklar=3D3D3DFDn=3D3D3DFDn i=3D3D3DE7erisine yazaca=3D=
3D3DF0=3D3D3DF=3D
> > Dn=3D3D3DFDz =3D3D
> > > kod =3D3D3DE7ok =3D3D3D
> > > > =3D3D3DF6nemli =3D3D3DE7=3D3D3DFCnk=3D3D3DFC ona
> > > > g=3D3D3DF6re alternatif bir =3D3D3DE7ok =3D3D3DF6zel sonu=3D3D3DE7 =
=3D3D
> > > =3D3D3DFCretebilirsiniz.=3D3D3D20
> > > >=3D3D20
> > > >=3D3D20
> > > >=3D3D20
> > > > Alternatif bir =3D3D3DE7ok =3D3D3DE7=3D3D3DF6z=3D3D3DFCm var ancak =
bunlar=3D3D3DF=3D
> > D =3D3D
> > > s=3D3D3DFDralay=3D3D3DFDp =3D3D3D
> > > > sazanl=3D3D3DFDk yapmadan
> > > > =3D3D3DF6nce benim size sormak istedi=3D3D3DF0im birka=3D3D3DE7 =3D=
3D3DFEey var=3D
> > ...
> > > >=3D3D20
> > > > 1-) "Kod de=3D3D3DF0i=3D3D3DFEirse" diye kayg=3D3D3DFDland=3D3D3DFD=
=3D3D3DF0=3D3D3D=3D
> > FDn=3D3D3DFDz =3D3D
> > > olay=3D3D3DFDn =3D3D3D
> > > > =3D3D3DE7=3D3D3DF6z=3D3D3DFCm=3D3D3DFC kullan=3D3D3DFDc=3D3D3DFDn=
=3D3D3DFDn
> > > > verece=3D3D3DF0i kodlara g=3D3D3DFCvenmeden auto increment bir kod =
=3D3D
> > > =3D3D3DFCretmek ve
> > > > dolay=3D3D3DFDs=3D3D3DFDyla da kendi =3D3D3DFCretti=3D3D3DF0iniz, =
=3D3D
> > > de=3D3D3DF0i=3D3D3DFEmeyece=3D3D3DF0ine emin =3D3D3D
> > > > oldu=3D3D3DF0unuz
> > > > kodlarla =3D3D3DE7al=3D3D3DFD=3D3D3DFEmakt=3D3D3DFDr ancak; peki ya=
kod de=3D3D3D=3D
> > F0il de =3D3D
> > > o kodun =3D3D3D
> > > > kar=3D3D3DFE=3D3D3DFDl=3D3D3DFD=3D3D3DF0=3D3D3DFDndaki
> > > > isim de=3D3D3DF0i=3D3D3DFEirse? Yani adam 30 numaral=3D3D3DFD =3D3D=
3DC7i=3D3D3DE7=3D
> > ek =3D3D
> > > Bak=3D3D3DFDm=3D3D3DFD =3D3D3D
> > > > Hizmeti'nin koduna
> > > > dokunmay=3D3D3DFDp ad=3D3D3DFDn=3D3D3DFD "Iv=3D3D3DFDr Z=3D3D3DFDv=
=3D3D3DFDr Hizmet=3D
> > i" olarak =3D3D
> > > =3D3D3D
> > > > de=3D3D3DF0i=3D3D3DFEtirirse? bu durumda
> > > > sizin yazd=3D3D3DFD=3D3D3DF0=3D3D3DFDn=3D3D3DFDz kodlardan =3D3D3DC=
7i=3D3D3DE7ek =3D
> > =3D3D
> > > Bak=3D3D3DFDm=3D3D3DFD hizmeti i=3D3D3DE7in =3D3D3D
> > > > =3D3D3DE7al=3D3D3DFD=3D3D3DFEmas=3D3D3DFD gereken
> > > > kod bam ba=3D3D3DFEka bir hizmet i=3D3D3DE7in alakas=3D3D3DFDz i=3D=
3D3DFEler =3D
> > =3D3D
> > > yapm=3D3D3DFD=3D3D3DFE olmaz =3D3D3D
> > > > m=3D3D3DFD?
> > > >=3D3D20
> > > > 2-) E=3D3D3DF0er kodunuzla ve tablolardaki de=3D3D3DF0erlerle =3D3D
> > > ba=3D3D3DF0lant=3D3D3DFDl=3D3D3DFD =3D3D3D
> > > > i=3D3D3DFEler olacaksa
> > > > ve dinamik hizmet tan=3D3D3DFDmlamas=3D3D3DFD olacaksa, kodunu iste=
di=3D3D3DF=3D
> > 0i =3D3D
> > > kadar
> > > > de=3D3D3DF0i=3D3D3DFEtirsin ama kullan=3D3D3DFDc=3D3D3DFDn=3D3D3DFD=
n ad=3D3D3DFDn=3D
> > =3D3D3DFD ve =3D3D
> > > s=3D3D3DFDras=3D3D3DFDn=3D3D3DFD =3D3D3D
> > > > de=3D3D3DF0i=3D3D3DFEtiremeyece=3D3D3DF0i bir
> > > > yakla=3D3D3DFE=3D3D3DFDm program=3D3D3DFDn=3D3D3DFDz ad=3D3D3DFDna =
bir=3D3D3DFEeyle=3D
> > re engel =3D3D
> > > olur mu? (Engel =3D3D3D
> > > > olmaz
> > > > diyorsan=3D3D3DFDz zaten auto increment olarak =3D3D
> > > a=3D3D3DE7=3D3D3DFDklad=3D3D3DFD=3D3D3DF0=3D3D3DFDm =3D3D3D
> > > > =3D3D3DE7=3D3D3DF6z=3D3D3DFCm i=3D3D3DFEinizi g=3D3D3DF6r=3D3D3DFCr=
)
> > > >=3D3D20
> > > > 3-) Veya "ayr=3D3D3DFD field istemiyorum ben" diyorsan=3D3D3DFDz yi=
ne =3D3D
> > > isimleri
> > > > de=3D3D3DF0i=3D3D3DFEtirtmemek ko=3D3D3DFEuluyla isimlerle =3D3D
> > > =3D3D3DE7al=3D3D3DFD=3D3D3DFEabilirsiniz, bu =3D3D3D
> > > > size bir engel
> > > > yarat=3D3D3DFDr m=3D3D3DFD?
> > > >=3D3D20
> > > > v.s v.s. =3D3D3DFEeklinde sorular =3D3D3DE7o=3D3D3DF0alt=3D3D3DFDla=
bilir...
> > > >=3D3D20
> > > > Bence tablo yap=3D3D3DFDs=3D3D3DFDn=3D3D3DFD ve yapmak istedi=3D3D3=
DF0iniz (yan=3D
> > i if =3D3D
> > > bloklar=3D3D3DFD =3D3D3D
> > > > i=3D3D3DE7erisine
> > > > ne kodu yazacaksan=3D3D3DFDz mesela) i=3D3D3DFEleri biraz daha geni=
=3D3D3DFE =3D
> > =3D3D3D
> > > > a=3D3D3DE7=3D3D3DFDklarsan=3D3D3DFDz daha
> > > > yarat=3D3D3DFDc=3D3D3DFD fikirler =3D3D3DFCretilebilir...
> > > >=3D3D20
> > > >=3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > =3D3D3DDDnsallah anlatabilmisimdir :)
> > > > >=3D3D3D20
> > > > > Tsk.
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > > Fuat
> > > > >=3D3D3D20
> > > > > =3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > > >=3D3D3D20
> > > >=3D3D20
> > > >=3D3D20
> > > > Hazar Agency & Computer Systems
> > > > Phone: +90 212 356 65 56
> > > > +90 212 356 62 75
> > > >=3D3D20
> > > > Projects and Software Development Department Manager
> > > > Gurkan ASLAN (a.k.a. Integer)
> > > >=3D3D20
> > > >=3D3D20
> > > >=3D3D20
> > >=3D20
> > >=3D20
> > > Hazar Agency & Computer Systems
> > > Phone: +90 212 356 65 56
> > > +90 212 356 62 75
> > >=3D20
> > > Projects and Software Development Department Manager
> > > Gurkan ASLAN (a.k.a. Integer)
> > >=3D20
> > >=3D20
> > >=3D20
> >=20
> >=20
> > Hazar Agency & Computer Systems
> > Phone: +90 212 356 65 56
> > +90 212 356 62 75
> >=20
> > Projects and Software Development Department Manager
> > Gurkan ASLAN (a.k.a. Integer)
> >=20
> >=20
> >=20
> >=20
> > -- Attached file included as plaintext by Ecartis --
> > -- File: signature.asc
> > -- Desc: This is a digitally signed message part
> >=20
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.2.3 (GNU/Linux)
> >=20
> > iD8DBQBATv3Kkl0I+ggDd5ERAs+TAKCc+P03Z7bYHK0L7oRtDyhU2YBrAgCcCfLS
> > tI5Y6XCUWS+qkTqWXKuvRSk=3D
> > =3Dezlm
> > -----END PGP SIGNATURE-----
> >=20
> >=20
> >=20
> >=20
>=20
>=20
Hazar Agency & Computer Systems
Phone: +90 212 356 65 56
+90 212 356 62 75
Projects and Software Development Department Manager
Gurkan ASLAN (a.k.a. Integer)
-- Attached file included as plaintext by Ecartis --
-- File: signature.asc
-- Desc: This is a digitally signed message part
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQBATwY6kl0I+ggDd5ERAlcDAKC5r/+YN9TabCDToGxwv+LzD/lntACggip0
1LgUyuC6TevRH+2k/0wQsDU=
=2m3R
-----END PGP SIGNATURE-----