تطوير الويبتكنيكال

(Object-relational mapping) ORM ما هو الـ

انت كمبرمج راح تشتغل الكثير من المشاريع التي تتمحور حول ادارة قاعدة البيانات يعني راح تسوي انظمة تخزن  بيانات بقاعدة البيانات بعدد من الجداول الي يكون بينها علاقات .

بهاي الحالة راح تبدي تصمم قاعدة البيانات وتسوي العلاقات بين الجداول وهكذا امور , وهذا الشي راح يطلب منك خبره بكود الـSQL .
بالاضافة الى تنفيذ الاستعلامات (Query) على قاعدة البيانات واستلام النتائج وهذا ايضا يطلب خبره بكود الـSQL .

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

Object Relational Mapping. Simplify Your Life with ORM | by Erica M | Medium

الـORM هوه عبارة عن كلاس يساعدك بالتعامل مع قاعدة البيانات بشكل اسهل وما راح يطلب منك خبره كبيره بالـSQL حتى تنفذ استعلامات لانه  راح يكون كله عباره عن مجموعة دوال تستدعيهن حتى تحصل النتيجة المناسبة مع امكانيه فلترة البيانات بشكل افضل  وايضا ترتيب البيانت على شكل Collection مناسب وسهل الاستخدام .

طريقه استخدام الـORM هو تعمل كلاس بشكل معين وتخلي يورث كلاس الـORM بهذه الحاله صار عدك شي اسمه MODEL لكل جدول تسوي MODEL وراح تتعامل مع هذا المودل عن طريق عمل انستانس (object) من هذا الموديل واستدعاء الدوال المناسبه لعملك
#مثال :- بلغة PHP بفريمورك الـLaravel اكو ORM اسمه Eloquent

الكود بدون orm راح تحتاج بي 5 دوال تنفذهن مع كل استعلام ما عدا استعلام ادخال البيانات تنفذ 3 فقط
mysqli_connect
mysqli_query
mysqli_fetch_XXX
mysqli_free_result
mysqli_close

لكن لو استخدمت الـORM
راح تسوي مودل باسم الجدول مثلا Student وفقط تستدعي
() Student::all
هذا راح يجيبلك كل السجلات من الجدول بكل بساطة .

طبعا اكو الكثير من انواع الORM بكل لغه مثلا بالـJAVA تستخدم الـ repository وهو ايضا يعتمد على الـOOP مثل ما بالـEloquent .

ببساطة الموضوع اذا كنت تريد تتعامل مع قاعدة بيانات بشكل سهل وسلس ابحث عن موضوع الـORM باللغة الي انت بتستخدمها .

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!