FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

2 tabloyu tek foreign key ile bağlamak hakkında.

+2 oy
159 kez görüntülendi
Merhabalar, A B C isminde üç tablomuz olsun. C tablosu hem A ile hem de B tablosu ile ilişkilendirilecektir. C tablosuna hem A hem de B tablosu için 2 foreign key oluşturmak yerine tek foreign key oluşturup bağlasak uygun olur mu acaba?
12, Haziran, 12 Database kategorisinde ciftci.ibrahim (600 puan) tarafından soruldu

3 Cevaplar

+3 oy
 
En İyi Cevap
C tablosunda hem A hem de B tablolarına bağlanması gereken durumlarda her iki tablo için de ayrı foreign key oluşturmak en iyi uygulama olacaktır. Bu yaklaşım, veri bütünlüğünü ve ilişkisel tutarlılığı korur.

Şöyle düşünelim:

    •    A tablosu ve C tablosu arasında bir ilişki kurmanız gerektiğinde, C tablosuna A_ID adında bir foreign key eklemeniz gerekir.
    •    Aynı şekilde, B tablosu ve C tablosu arasında bir ilişki kurmanız gerektiğinde, C tablosuna B_ID adında bir foreign key eklemeniz gerekir.

Tek bir foreign key kullanmak yerine her iki tablo için de ayrı foreign key kullanmak, hangi tablonun hangi kaydına referans verildiğini net bir şekilde belirlemenizi sağlar. Aksi halde, tek bir foreign key ile iki tabloya birden bağlanmak veri tutarsızlıklarına ve karmaşıklıklara yol açabilir.
13, Haziran, 13 Behlül Akkoç (4,270 puan) tarafından cevaplandı
14, Haziran, 14 Mehmet KAYA tarafından seçilmiş
+2 oy
Mantığa ters gibi A tablosunda kayıt ürettiğinde B tablosunda çakışma var mı, aynı ID ye sahip B tablosuna kayıt eklenmiş mi gibi bir çok sıkıntıyı aşman gerekecek. Bence sağlıklı bir yöntemin mantığını zihninizde oturtturmadan uğraşmayın.
14, Haziran, 14 Mehmet KAYA (165,790 puan) tarafından cevaplandı
A ve B tablolarının ID lerini ben harf (şablon) ile ayırdığım için çakışma söz konusu olmaz ama sadece rakamlardan oluşan bir id olmuş olsaydı çakışma söz konusu olurdu dolayısıyla bu yöntemin doğru olmadığı anlaşıldı. Behlül Akkoç un dediği gibi C tablosuna hem A için hem de B için ayrı FK alanları oluşturdum.
+2 oy
Merhaba ben de bir yorum yapmak isterim. Farklı vakalarda farklı yöntemleri tercih ettiğim projeler oldu. Ortak foreign key kullanım örneklerinde ID alanlarına  seri numarası yerine UUID vermek de güzel kullanım örneklerinden biri.

 

C tablosuna hem A, hem de B için ID yazmak yerine A ve B tablosuna C tablosunun id'sini neden yazmıyorsunuz?
16, Haziran, 16 F. Osman Cabi (199,070 puan) tarafından cevaplandı
...