A_or_B_ID
TableZ'de gerçekten ihtiyacınız varsa, iki benzer seçeneğiniz vardır:
1) Tablo z'ye null yapılabilir A_ID
ve B_ID
sütunlar ekleyin A_or_B_ID
, bu iki sütunda ISNULL kullanarak hesaplanan bir sütun oluşturun ve yalnızca biri A_ID
veya B_ID
boş olmayacak şekilde bir DENETİM kısıtlaması ekleyin
2) Tablo z'ye, A veya B'yi içerecek şekilde kısıtlanmış bir TableName sütunu ekleyin. Şimdi A_ID
ve B_ID
hesaplanan sütunlar olarak, yalnızca uygun tabloları adlandırıldığında (CASE ifadesini kullanarak) boş olmayanlar oluşturun. Onların da ısrar etmesini sağlayın
Her iki durumda da, artık temel tablolara uygun yabancı anahtarlara sahip olabilen A_ID
ve B_ID
sütunlarınız vardır. Fark, sütunların hesaplandığı yerdir. Ayrıca, 2 kimlik sütununun alanları çakışmıyorsa yukarıdaki 2. seçenekte TableName'e ihtiyacınız yoktur - vaka ifadeniz hangi alanın A_or_B_ID
dahil olduğunu belirleyebildiği sürece
(Biçimlendirmemi düzelttiğim için yorum için teşekkürler)