كيف يخلق الناس قواعد بيانات قابلة للاستخدام؟

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

  •  13-09-2019
  •  | 
  •  

سؤال

كيف يصنع الناس قواعد بيانات قابلة لإعادة الاستخدام التي يمكن استخدامها للعديد من المنتجات؟

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

ما هي الطريقة لإنشاء قاعدة بيانات يمكن استخدامها كمنتج لإعطاء حل للعديد من العملاء مع الترميز مرة واحدة فقط؟

شكرا

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

المحلول

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

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

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

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

نصائح أخرى

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

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

مع الخبرة، ستبدأ في تقدير توازن مثالي بين المعمم والمتخصصة. هذا هو مفتاح تصميم رمز / قاعدة بيانات قابلة لإعادة الاستخدام.

الجواب هو العثور على مكان جميل من التجريد.

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

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

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

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

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

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

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

أفضل نصيحة يمكنني تقديمها هي البناء إلى أدنى قاسم مشترك ....

إذن .... رمزه كمشروع موجه نحو مرافق التعليم :-)

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

ذلك يعتمد على الاحتياجات الخاصة بك. على سبيل المثال، تستخدم العديد من قواعد البيانات الخاصة بشركات المنتجات المستندة إلى المنتج تنسيقا يتضمن:

  • جدول عملاء
  • جدول أوامر
  • طاولة المنتجات، إلخ

في وضعك قد يكون لديك

  • طاولة الفصل
  • طاولة الطلاب
  • جدول الصفوف، إلخ.

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

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

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

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

هل سيؤدي كل عميل إلى استخدام كل الوظائف أو تحاول بناء حجم AA واحد يناسب كل المنتج؟ لقد وجدت دائما أن الوقت الإضافي الذي يقضيه في التخطيط وتعديل قاعدة بيانات لتناسب تطبيق معين يدفع في المستقبل. من الأسهل بكثير العمل مع هيكل قاعدة بيانات موجز من واحد حيث حاولت حساب كل الاحتمالات.

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

خدعة أخرى قمت بها مؤخرا أنقذني الكثير من الوقت هو حفظ SQL المستخدمة لإنشاء قاعدة البيانات كبرنامج نصي. إذا كنت ترغب في إعداد قاعدة بيانات جديدة، أقوم بإجراء أي تعديلات على التعليمات البرمجية المصدر، ثم قم بتحميل الصفحة. على سبيل المثال، إذا أردت إنشاء جدول عملاء جديد أحمله http: //localhost/load.php؟ إنشاء = العملاء.

آمل أن يساعد!

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