الزواج حتى المستهلك-تعريف المجاميع (مثلا ، SQL التهم) مع 'نقية' نموذج الكائنات ؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

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

  1. هو تطبيق ويب حيث 99.9999999999% من جميع العمليات هي عمليات القراءة.

  2. أنها لا تحتاج إلى عملية أو القيام بأي معقدة منطق الأعمال.نحن بحاجة فقط إلى الحصول على البيانات بسرعة إلى HTML.

  3. في عدة الأداء الحالات الحرجة ، نحن بحاجة إلى تحميل نتائج SQL المجاميع التي لا تناسب أي نموذج خصائص.

  4. نحن بحاجة الموسعة طريقة لإدخال أي بيانات مخصصة إذا لزم الأمر.

كيف يمكنك عادة حل هذه المشكلة دون العمل كثيرا حول ORM (على سبيل المثال البيانات الخام من db)?أنا متأكد من أن هذا قد نوقش مرات عديدة, ولكن أنا لا يمكن معرفة جيدة جوجل الاستعلام للعثور على أي شيء مفيد.

تحرير:منذ أدركت بعد السؤال لم يكن جيدا شكلت قررت إعادة صياغة و بدء واحدة جديدة.

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

المحلول

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

كنت قد تميل إلى الاستغناء عن وجوه المنحى النهج تماما.

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

كنا SQL الإجراءات المخزنة XML المكتبات على DB server, XSLT (للحصول على HTML) و جافا سكريبت.

نصائح أخرى

صافية خالصة مثل نفسي أن نمط ديكور.http://en.wikipedia.org/wiki/Decorator_pattern

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

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

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

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

نموذج المجال ويوفر نمط طريقة فصل OO تصميم تطبيق من تصميم قاعدة البيانات المادية.

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