هل تحد القضبان ORM من القدرة على إجراء التجميعات؟

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

سؤال

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

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

المحلول

القيود المفروضة على ActivereCord هي أحد الأسباب التي جعلني واجهت مشكلة في استخدام القضبان في بيئة علمية. قد ترغب في الاطلاع على Ruby Orm البديلة التي تجعل الأمر أسهل قليلاً في العمل مع قاعدة بيانات قديمة:

في نهاية المطاف ، على الرغم من أن Orm's By Design يأخذك بعيدًا عن SQL ، لذا فمن الممكن أن يكون أي منها مناسبة جيدًا.

نصائح أخرى

يوضح هذا السؤال قضية ROR التي تمت مناقشتها على نطاق واسع - الانزعاج النسبي مع متطلبات تعيين قاعدة البيانات الصعبة. (إنه حقًا نمط ActivereCord حيث تكمن الصعوبات) -To-ty-many تأكيدات.

لذلك أقول أنك ستكون أكثر راحة إذا قبلت SQL Duty بنفسك ، ثم دع Ror تتعامل مع قطع الغيار.

هذا ليس مأزق يقتصر على ROR. تعرض معظم أداة نمذجة الكائنات العلمية نفس الأسئلة.

(الحاشية: لقد استخدمت تقريبا اختصار ORM ، ولكن هناك ORM آخر يتعامل بشكل خاص مع هذه الأنواع من مشكلات تصميم قاعدة البيانات المفاهيمية وتجريدها بشكل جيد: نمذجة دور الكائن.)

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

نهاية لهذه الغاية: Rails_sql_views

يحرر: في مزيد من الفحص ، قد لا تحتاج حتى إلى أي جوهرة ، أو أي إعداد خاص آخر للاستعلام ببساطة ضد وجهات النظر.

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

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