سؤال

وأنا إنشاء الحقائق والجداول خافت ومحاولة لمعرفة أفضل طريقة لإعداد القيم وقتي. يستخدم AdventureworksDW على timekey (UID) لكل إدخال الوقت في الجدول DimTime. أنا أتساءل هناك أي سبب لا ينبغي لي أن مجرد استخدام قيمة الوقت بدلا أي 0106090800 (بلادي تحبب هو ساعة)؟

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

المحلول

و"مفاتيح الذكية" (في هذه الحالة، تاريخ مشفرة وعدد ساعة) يمكن أن يؤدي إلى مشاكل عندما تريد تغيير التعريفات في البعد الخاص بك. على سبيل المثال، للمستخدمين قد يصر على التغيير من التوقيت المحلي إلى UTC. الآن لديك مفتاح لم يعد في الواقع عددا من المفيد، انها القيمة القديمة في البعد.

وعلاوة على ذلك، مع قضية الانقلاب منتصف الليل، وجزء من تاريخ المفتاح الذكي الخاص بك قد لا تتطابق مع التاريخ الفعلي للUTC مقابل تغيير التوقيت المحلي.

لمنع المفتاح من أن تصبح مشكلة، لا يمكن استخدامها لأي حساب من أي نوع. وفي هذه الحالة، فإنه من الأفضل قليلا من GUID أو زيادة تلقائية عدد بسيط.

ومفاتيح السيارات زيادة (أو المعرفات الفريدة العمومية) هي سريعة وبسيطة. الأهم من ذلك، أنها تتفق بشكل مسلي في جميع الأبعاد.

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

نصائح أخرى

إليك آخر على البعد الزمني. انها مؤرخة عام 2004، إلا أنها لا تزال جيدة.

هذا واحد سوف يساعد أيضا.

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

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