تصميم قاعدة البيانات المقترنة بشكل فضفاض - كيف؟

StackOverflow https://stackoverflow.com/questions/1421076

سؤال

أقوم بتنفيذ تطبيق قائم على الويب باستخدام Silverlight مع قاعدة بيانات SQL Server في النهاية الخلفية لجميع البيانات التي سيعرضها التطبيق.أريد التأكد من أن التطبيق يمكن أن يكون قابلاً للتطوير بسهولة وأشعر أن الاتجاه الذي يجب اتباعه في هذا هو جعل قاعدة البيانات مقترنة بشكل غير محكم وعدم ربط كل شيء بمفاتيح خارجية.لقد حاولت البحث عن بعض الأمثلة ولكن دون جدوى.

هل لدى أي شخص أي معلومات أو نقاط بداية/عينات/أمثلة جيدة لمساعدتي في البدء بهذا؟

مساعدة موضع تقدير كبير.

أطيب التحيات،

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

المحلول

إلا إذا كنت تقوم بكميات هائلة من الإدخالات في وقت واحد، كما هو الحال مع مستودع البيانات، استخدام المفاتيح الخارجية. تطبيع المقاييس مثل الجنون، ويجب عليك الاستفادة من ذلك.المفاتيح الخارجية سريعة، ولا يعيقك القيد إلا إذا كنت تقوم بإدخال ملايين وملايين السجلات في المرة الواحدة.

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

نصائح أخرى

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

وأعتقد إذا كنت تبحث عن مصطلح "التطبيع" و "denormalization" ستحصل على نتائج أفضل.

وحتى قبل أن تفكر في شيء من هذا القبيل، تحتاج إلى التفكير في سلامة البيانات. وجود مفاتيح الخارجية بحيث لا يمكنك وضع السجلات في الجداول إذا كانت البيانات الأولية لأنها تستند ليست هناك. إذا كنت لا تستخدم المفاتيح الخارجية، سوف عاجلا أم آجلا (وربما قبل ذلك) في نهاية المطاف مع البيانات لا قيمة لها لأنك لا تعرف حقا من هو العميل هو أن يتم إرفاق أجل على سبيل المثال. المفاتيح الخارجية هي حماية البيانات، يجب أن لا تنظر عدم استخدامها.

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

وتعليق يضيع حول أمن قاعدة البيانات عندما تكون البيانات مدخلات من مصادر خارجية مثل البرامج النصية قاعدة البيانات.

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