2016-03-30 20 views
0

Müşteriler ve uygulama paketleme isteklerini yöneten bir Program üzerinde çalışıyorum. Bilgiyi MS SQL Veritabanında saklamak ve müşteriye bağlı olarak farklı varsayılan değerlere sahip olmak istiyorum çünkü farklı müşterilerin farklı bir alakalı veya kullanılmış değerler grubu var.Tek bir önemli üye ile bir 1: n ilişkisi nasıl olur

Veritabanı'm 2 ilgili tablo var: Müşteri ve Uygulama. Bir Müşterinin birçok uygulaması olabilir (Uygulamada 1: n Yabancı anahtar) Ancak her bir Müşteri aynı zamanda bir dizi Varsayılan değerlere sahiptir (Müşteri 1: 1 Yabancı anahtar)

Bazı kişilerden sonra benzer bir şeyi deneyen birini bulamadım Araştırma ve bu iki referans hakkında gerçekten kötü bir his var. 1: N ilişkinin N tarafında olağanüstü bir üye elde etmek için daha zarif bir yol var mı?

Müşteri ve varsayılan kümesi 1'dir:

cevap

0

birkaç yaklaşım vardır 1.

tüm diğer uygulama varlıklarla müşteriye 1: n

  • Sen aynı olan iki tablo tanımlayabilirsiniz
  • (kolay ve hızlı değil ama temiz) Müşteri tabloya doğrudan varsayılan koymak olabilir yapısı. Varsayılanları tanımlamak için null olmayan sütunlar ve bunları 1: 1 ve ikincisi 1: n ilişkisi olarak bağla (Bunları bir araya getirmek için bir UNION sorgusuna gereksiniminiz vardır)
  • İşaretlemek için uygulama tablonuzda bir işaretçi kullanabilirsiniz. varsayılan "satır (Yalnızca bir işaretli kayıt olduğundan emin olmanız gerekir)
  • Mevcut yaklaşımınız böyle görünüyor - varsayılan satırın kimliğini saklamak için müşteri tablonuza bir FK-ID atayabilirsiniz.
  • Benim yaklaşımım: Uygulama tablonuza bir sıra sütunu koy. Müşteri kimliği kombinasyonunu belirleyebilir ve benzersiz olarak sıralayabilirsiniz ... Bu, en düşük sıralamayı varsayılan olarak tanımlayabilmenizi ve - basamaklı bir stil sayfasıyla benzerlik gösterebilmenizi sağlar - en yüksek ile başlayıp bulduklarınızı bulana kadar geriye doğru hareket edebilirsiniz. NULL dışında bir değer.