سؤال

لدي بعض الكيانات في مستودع البيانات الخاص بي:

  1. شخص - مع سمات شخصية، DateFrom، Dateto، وغيرها يمكن تغييرها، على سبيل المثال الاسم الأخير، تاريخ الميلاد وهلم جرا - تغيير البعد ببطء

  2. li>

    المستند - المستندات، الرقم، النوع

  3. العنوان - boderid، المدينة، الشارع، المنزل، شقة

  4. العلاقات بين (الشخص والوثيقة) هي واحدة إلى كثير و (شخص وعنوان) كثيرون كثيرون.

    هدفي هو إنشاء جدول حقيقة الحقائق التي يمكن أن تجيبنا على الأسئلة التالية:

    1. ما الأشخاص الذين يعيشون المستندات في عنوان محدد في تاريخ محدد؟
    2. 2، ما هو تاريخ المحددين على العنوان المحدد في الفاصل الزمني المحدد؟

      هذا ليس فقط لما تم تصميمه، لكنني أعتقد أنه أصعب شيء في تصميم DW.

      على سبيل المثال، ملكة جمال براون مع PersonID= 1، تم تعيش المستندات مع المستندات المستندية= 1 و DocumentID= 2 في العنوان مع AddressID= 1 منذ 01/01/2005 إلى 02/02/2010 ثم انتقلت إلى المرسل إليه= 2 حيث تم تعيش منذ 02/03/2010 حتى التاريخ الحالي (NULL؟). لكنها غيرت اسم العائلة إلى السيدة الخضراء منذ 04/05/2006 وثيقتها الأولى مع الوثائق= 1 إلى المستندات= 3 منذ 06/07/2007. السيد الأسود مع personid= 2، تم تعيش المستندات= 4 في المرسل إليه= 1 منذ 02/03/2010 حتى التاريخ الحالي.

      النتيجة المتوقعة على استعلامنا للمسألة 2 حيث يجب أن يكون الأمر كذلك= 1، والفاصل الزمني منذ 01/01/2000 حتى الآن، يجب أن يكون مثل:

      الصفوف:

      giveacodicetagpre.

      كان لدي فكرة لإنشاء جدول الحقائق مع مفتاح مركب (PersonID، DocumentID، AddoDid، DateFrom) ولكن ليس لدي أي فكرة عن كيفية تحميل هذا الجدول، ثم احصل على هذه النتيجة المتوقعة بهذا الهيكل.

      سأكون سعداء بأي مساعدة!

هل كانت مفيدة؟

المحلول

سؤال مثير للاهتمام Regnist!

لذلك لإنشاء بعض اللغة الشائعة على سبيل المثال، تريد

  • dimperson (pk= kcperson، suggoste الرئيسية للأشخاص الفريدين= KPERSON، TYPE 2 DIM)
  • dimdocument (pk= kcdocument، suggost الرئيسية للمستندات الفريدة= kdocument، اكتب 2 قاتمة)
  • dimaddress (pk= kcaddress، suggoste الرئيسية للعناوين الفريدة= kaddress، type 2 dim)

قد كتب زميل مدونة قصيرة على استخدام مفتاحين بديلين لشرح الخفزير المذكورة أعلاه " استخدام اثنين من مفاتيح بديلة على الأبعاد ".

سأضيف دائما dimdate مع pk في النموذج yyyymmdd إلى أي مستودع بيانات مع أعمدة سمة إضافية.

ثم سيكون لديك جدول الحقائق الخاص بك باسم

  • facthistory (fks= kcperson، kperson، kcdocument، kdocument، kcperson، kperson، kdate) بالإضافة إلى أي تدابير asitional.

ثم الانضمام إلى "KC"، يمكنك إظهار معلومات البعد للشخص / الوثيقة / العنوان الحالي. إذا انضممت إلى "K"، فيمكنك إظهار معلومات البعد / الوثيقة التاريخية / العنوان التاريخية.

الجانب السلبي لهذا هو أن جدول الحقائق يحتاج إلى صف واحد لكل شخص / وثيقة / عنوان / تاريخ. لكنه حقا طاولة ضيقة للغاية، لأن الجدول لديه فقط عدد من المفاتيح الأجنبية.

ميزة هذا هو من السهل جدا الاستعلام عن أنواع الأسئلة التي كنت تسأل.

بدلا من ذلك، يمكن أن يكون لديك جدول الحقائق الخاص بك باسم

  • facthistory (fks= kcperson، kperson، kcdocument، kdocument، kcperson، kdatefrom، kdatefrom، kdateto) بالإضافة إلى أي تدابير asitional.

من الواضح أن هذا هو أكثر إحكاما، لكن الاستعلام يصبح أكثر تعقيدا. يمكنك أيضا وضع عرض على طاولة الحقيقة لتسهيل الاستعلام!

اختيار المحلول يعتمد على تواتر تغيير البيانات. أظن أنه لن يغير ذلك بسرعة، لذلك قد يكون التصميم البائع من الجدول الحقيقة أفضل.

نأمل أن يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top