PK,FK indeksi otomatik yapiyor ama iki tane ne gerek varki

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

PK,FK indeksi otomatik yapiyor ama iki tane ne gerek varki

Mesaj gönderen musti »

aklima takildi.

İndeks olusturuken tek bir seferde(tek bir index adi ile) hem kodu,hem tarihi mi indexlemek mantikli yoksa her birine ayri bir isim vermek mi

birde
pk ve fk yapinca iki farkli index adi ile index oluşuyor. birini silsek daha iyi olmazmi.
ornek
index1_ pk fisno
index2_ fk fisno,id

index1_ pk bunu silsek sorun olurmu
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Re: PK,FK indeksi otomatik yapiyor ama iki tane ne gerek var

Mesaj gönderen undefined »

musti yazdı:aklima takildi.
İndeks olusturuken tek bir seferde(tek bir index adi ile) hem kodu,hem tarihi mi indexlemek mantikli yoksa her birine ayri bir isim vermek mi
Eğer primary key için soruyorsanız. Eğer iki alanı tek bir indexe koyarsanız bu 2 alanın birleşimi üzerinden unique constraint (eşitsiz olma zorunluluğu) uygulanır .

Mesela Pk (primary key) hem kodu hem tarihi içeriosa aşağıdaki gibi kayıtlar gerçekleştirebilirsiniz.

Kod: Tümünü seç

Kod  Tarih
1      1.10.2005 
1      2.11.2005
1      3.11.2005
2      1.10.2005
2      2.11.2005
Eğer Pk sadece kodu fieldini çermiş olsaydı 2. 3. ve 5. kayıdı yapamazdık çünkü Unique constraint "kodu" fieldi için tek başına değerlendirelecekti.

Pk nın hem kodu hemde tarihini içerdiğini varsayarak yukardaki kayıtlara
mesela "1 , 1.10.2005" kaydını eklersek unique sınırlamasına karşı gelmiş oluruz ve hata alırız.
musti yazdı:aklima takildi.
birde
pk ve fk yapinca iki farkli index adi ile index oluşuyor. birini silsek daha iyi olmazmi.
ornek
index1_ pk fisno
index2_ fk fisno,id
Pk ve Fk farklı şeyler.

Primary key o tablonun kayıt sıralamasında baz alınan unique indexli alan veya alanlardır.
Foreign key başka bir tablonun primarkeyini refere eden alandır. Master detail ilişkilerin olmazsa olmazı ve RDBMSleri relational yapan şeydir...

Veritabanı tasarımı seminerlerini incelemenizi tavsiye ediyorum.

Kolay gelsin...
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

yani hocam
indeksi olustururken tek bir index adında 2 indeksi yapmak mı yoksa iki farklı index adı ile indexi olusturmak mı mantıklı

tarih ve kod indexleyeceksen

index1 kod
index2 tarih

mu yapsak

index1 kod,tarih mi
yapsak dogru olur
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Mantıklı mı dan kasıt sorgulamalarda kullanmadığın bir alanı indekslersen elbetteki mantıklı olmaz. VT deki tablo için hangi indekslere ihtiyacın varsa o şekilde oluşturmalısın. Adına göre sorgulama yapıyorsan ADI alanına da ikinci bir indeks oluşturmalısın.. Programın yapısına göre tekli veya birden çok alanı kapsayan indeksler de kullanabilirsin. Fakat Birincil (primary) indeks eşsiz (uniuqe) olmalı yada o yapıda olmalı :idea:
En son rsimsek tarafından 27 Eyl 2005 10:14 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bu konudaki yazıları okumanı öneririm. Index konusunda kendini geliştirmiş olursun.

viewtopic.php?t=8669&highlight=index
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

bilgileriniz icin sagolun yine epeyce sey ogrendim allah razi olsun sizden

ama su sorunum cevabımı net alamadım ..

tek bir index ismi ile Fisno, Tarih, Kodu tek bir createlemi yapmak iyi olur.

yani create index Fisno, Tarih, Kodu

yok sa 3 tane create index olusturarak

create index fisno
create index tarih
create index kodu

mı daha iyi olur.


sanırım ayrı ayrı yapmak daha mantıklı

cunku ben hem tarihe gore sorgulama yapıyorum , hem koda gore sorguluyorum.




sanırım tek bir indexden sesen ayri ayri indexlemek performansı artıracaktır.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Verdiğim linki iyi inceleseydin sorunun cevabını alacaktın.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

ben yazdımki

Kod: Tümünü seç


sanırım tek bir indexden se ayri ayri indexlemek performansı artıracaktır.
bu bilgi sizin verdiginiz linkleri inceleyerek edindim .
buraya yazmamkdaki amac ise mesajı okuyan bir arkdasın direk bilgilenmesi.

tsk ederim siz olmasanız biz ne yaparız.
Cevapla