1

Konu: dosyaları birleştirme

5 table var. ve bu table daki belli alanları eşitleyerek tek dosyada toplamak istiyorum.



1.table
grupgun

grup                gunler
mezun             salı
mezun            çarşamba
mezun            perşembe
mezun            cuma
12.sınıf           cuma
12.sınıf           cumartesi
12.sınıf           pazar
.
.
.

***********************************************
2.table
bransders


grup               brans                ders                saat
mezun           sayısal             matematik1          4
mezun           sayısal             gometri                4
mezun           sözel               türkçe                   3
12.sınıf          sayısal             matematik1           5
12.sınıf          sayısal              geometri               3
12.sınıf          eşit a.              edebiyat               3
.
.
.
****************************************************

3.table
sinif

grup                  brans               sinif
mezun               sayısal               a
mezun               sayısal               d
mezun               sayısal               k
.
.
.
12.sınıf               sayısal              a12
12.sınıf               sayısal              c12
12.sınıf               eşit a.               e12
.
.

***********************************************
4.table
ogretmen

adsoyad             ders               gunler
ahmet taş           matematik1       salı
ahmet taş           matematik1      çarşamba
ahmet taş           matematik1       perşembe
mehmet kaya     geometri            cuma
mehmet kaya     geometri            cumartesi
mehmet kaya     geometri            pazar
.
.


***********************************************
5.table
ogrsinif


adsoyad                         sinif
ahmet taş                       a
ahmet taş                       d
ahmet taş                       k
.
.
mehmet kaya                 a12
mehmet kaya                 c12
mehmet kaya                 e12


bu tabloların sonucunda şöyle bir tabloya ulaşmak istiyorum.

adsoyad               ders                gun                grup        brans     sınıf   saat     

ahmet taş           matematik1     salı                 mezun      sayısal     a       4
ahmet taş           matematik1    çarşamba         mezun      sayısal     a       4
ahmet taş           matematik1    perşambe         mezun      sayısal     a       4
ahmet taş           matematik1    salı                  mezun      sayısal     d       4
ahmet taş           matematik1    çarşamba         mezun      sayısal     d       4
ahmet taş           matematik1    perşambe         mezun      sayısal     d       4
ahmet taş           matematik1     salı                 mezun      sayısal     k       4
ahmet taş           matematik1    çarşamba         mezun      sayısal     k       4
ahmet taş           matematik1    perşambe         mezun      sayısal     k       4
mehmet kaya     geometri        cuma                12.sınıf      sayısal    a12    3
mehmet kaya     geometri        cumartesi          12.sınıf      sayısal    c12    3
mehmet kaya     geometri        pazar                12.sınıf      sayısal    e12    3
.
.
.



yardımcı olursanız sevinirim. cevaplarınızı bekliyorum...

2

Re: dosyaları birleştirme

tablolar arasında bağlantılar(releation ) kurarsan işin hallolur. bu arada tabloları da bağlanacak alanlara göre  indexlemen gerekir.

3

Re: dosyaları birleştirme

bağlantı ve index nasıl yapılır?

4

Re: dosyaları birleştirme

Astronot,
Bu sekilde data yazdiginda cevap vermek isteyenler datayla ugrasip onlari kullanilabilir hale getirmekle ugrasmak istemeyebilir (benim gibi). Neden dogrudan o datayi olusturacak kodu vermiyorsun.

Visual Fox Pro
create cursor grupgun (grup c(10),    gunler c(10))

insert into grupgun values ('mezun','salı')
insert into grupgun values ('mezun','çarşamba')
insert into grupgun values ('mezun','perşembe')
insert into grupgun values ('mezun','cuma')
insert into grupgun values ('12.sınıf','cuma')
insert into grupgun values ('12.sınıf','cumartesi')
insert into grupgun values ('12.sınıf','pazar')

gibi. Foxpro 2.xten gecenler benzeri bir baslik altinda bu isi senin icin kolayca halledecek bir kod ornegi vermistim.

Bir de gercek datani hala sakladigini dusunuyorum. Kimse ciddi bir veritabaninda

mezun, sali

mezun, sayisal, matematik1, 4

vs gibi data tutmaz. Eger bu gercek datansa o zaman veritabani dizaynini iyice gozden gecir ve degistir. Soyle birsey beklerdim (star schema):

KodTipi  Kod  Deger
--------  -----  -------
Grup       1    Mezun
Grup       2    12.Sinif
Brans      1    Sayisal
Brans      2    Sozel
Ders       1    Matematik1
Ders       2    Geometri
Ders       3    Cografya
....


Visual Fox Pro
create cursor grupgun (grup i,    gunler i)

insert into grupgun values (1,2)
insert into grupgun values (1,3)
insert into grupgun values (1,4)
insert into grupgun values (1,5)
insert into grupgun values (2,5)
insert into grupgun values (2,6)
insert into grupgun values (2,7)

Her neyse baglantilar icin tek tek tablolarini gozden gecir ve ortak noktalarini bul. Mesela ilk iki tablonun ortak yani:

grup

Sonuc  3.tabloyla grup ve brans uzerinden baglaniyor.

4 ve 5i adsoyad unerinden baglandiginda orataya cikan tablo da yukaridaki ile ders,gun ve sinif uzerinden baglaniyor.

Alanlari indexlemenin ilk etapta onemi yok. Indexler baglantilari belirlemez yani. Ancak perfromans acisindan data buyudukce hiz icin lazim olacak. Bir dersanenin fazla bir datasi olmadigini dusununce de hic indexlenmese de gayet rahat calisacak bir sistem olur (gun 7, grup 3-5, ders 10-20, sinif tas catlasa 200, ogretmen < 500, brans 3 olup en berbat ve hatali baglanma yontemiyle bile 7*5*20*200*500 = 70 milyonda kalacak bir data).

5

Re: dosyaları birleştirme

Aman ha sakin indexleme anlami cikarma.

6 Son düzenleyen, astronot (10.03.2007 16:45:45)

Re: dosyaları birleştirme

ilk datamda bilgileri virgülle ayırmıştım. daha sonra sizin uyarılarınıza göre verileri bu şekle çevirdim.data saklama gibi bir şey aklıma gelmedi.

bu tablolar dinamik olacak.yani kullanıcının girdiği verilere göre değişecek. bu yüzden ben sadece bir örneğini gönderdim.

7

Re: dosyaları birleştirme

Yani data dizaynin gercekten bu mu??? Degistir vakit gec olmadan.

8

Re: dosyaları birleştirme

ben her tabledaki ortak alanlara göre bir sorgulama yapabilirim diye düşünüyordum.ama olmadı.yeni bir dizayn nasıl yapılabilir ki?

9

Re: dosyaları birleştirme

Bu gece 12den sonra bir toplanti yapiyoruz...
Orada olursan (MSN adresin bende yok, olan varsa haber verir baglanti linkini) senin data dizayniyla biraz oynariz.

10

Re: dosyaları birleştirme

Ya da MSN adresini simdi ver (galiba online sin)

11

Re: dosyaları birleştirme

teşekkürler.gece 12de olamam büyük ihtimal. ama mail adresim fikret76@hotmail.com.

12

Re: dosyaları birleştirme

Ekledim ama MSNin acik degil gibi

13

Re: dosyaları birleştirme

indexleme olmadan dosyalar arası bağlantı yapılabiliyor mu? olabiliyorsa öğrenmek isterim. formun data environmenti buna izin vermiyor ve otomatik olarak bir index oluşturuyorda.

14

Re: dosyaları birleştirme

ercan yazdı:

indexleme olmadan dosyalar arası bağlantı yapılabiliyor mu? olabiliyorsa öğrenmek isterim. formun data environmenti buna izin vermiyor ve otomatik olarak bir index oluşturuyorda.


Dataenvironmenta bile gerek yok ki. Select sql orneklerine bak.
Indexler otomatik olarak olusturulmuyor DE de bu arada.

15

Re: dosyaları birleştirme

Ercan galiba ikimiz farkli baglantidan bahsediyoruz. Sen set relation ben SQL join diyorum gibi geldi.

16

Re: dosyaları birleştirme

ben free table ve formlarda set relation kullandığımdan field->indexalan bağlantısı kullanıyorum.
dediğiniz doğru kastettiğim set relation.