2016-03-21 20 views
0

Terfi için bir tablo tasarlama aşamasındayım. Üç tür varlığın tanıtımını yapabilirim: makale, fotoğraf ve forum başlığı.Bir tabloda birden çok null anahtarın girilmesi

Öncelikle, yalnızca birinin ayarlanacağı üç yabancı anahtarla bir tablo oluşturmayı düşündüm.

promotion: 
- id 
- id_article 
- id_photo 
- id_thread 
- promotion_type 
- ... other properties 

article: 
- id 
- .. other properties 

photo: 
- id 
- .. other properties 

thread: 
- id 
- .. other properties 

İyi bir yaklaşım mıdır? İlk düşüncelerden sonra, burada "güzel" bir şey olabilirmiş gibi görünüyor. promotion_type hangi yabancı anahtar tablolarının birleştirileceğini belirtir.

+1

'promotion_type' gereksiz görünüyor : tanıtıma şu şekildedir:

Promosyon masa olacaktır. – JamieD77

+0

tasarımıyla bir araya gelme zamanından tasarruf etmek için var, çünkü tüm tablolara, sadece ihtiyaç duyulanlara katılmak zorunda değiliz. – SirKometa

+0

, hangi id_ değerinin doğru olduğu tarafından belirlenebilir? – JamieD77

cevap

0

3 sütun (id_article, id_photo, id_thread) kullanmak yerine, sadece bir sütun ekleyin. Örnek olarak PromotID olarak adlandırın, sonra hangi tablonun bağlanacağını belirlemek için yine de PromotionType sütununu kullanabilirsiniz. id - - PromotionID (id_article, id_photo veya id_thread ya) - PROMOTION_TYPE - ... diğer özellikleri

+0

Veri bütünlüğünü zayıflatmak istemem. FK ile sql server, bu idin diğer tabloda gerçekten mevcut olup olmadığını kontrol edecektir. – SirKometa

İlgili konular