السلام عليكم ورحمة الله وبركاته ،

في هذه التدوينة راح نتعرف على كيفية توليد بيانات عشوائية ويتم تخزينها في قاعدة  البيانات لمشروعنا ،

بدلا من عملها يدوياً  مما يقلل علينا الجهد والوقت وتنوع في الداتا التي تم توليدها .

اذا كنت مطور ويب فأكيد انت تعرف لارافل Laravel Framework  ، اذا كنت لا تعرف فهذه فرصتك لتتعرف عليه من هنا

https://laravel.com/

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

Factory & Seeding  & migration database

اولا : لنفترض انك قمت بتثبيت لارافيل ويمكنك الان انشاء مشروع جديد بمسمى store

 

بعد الانتهاء من انشاء المشروع

نفتح المجلد باستخدام المحرر المفضل لديك وبعدها نفتح ملف env.

ونغير ما يلزم

  • اسم قاعدة البيانات التي تم انشائها لهذا المشروع
  • اسم المستخدم وكلمة المرور للاتصال بقاعدة البيانات

ملاحظة : القيم تكون بدون مسافات ، اذا ماكان عند باسوورد لقاعدة البيانات اتركها بدون قيمة

 

الان تم تجهيز الاساسيات للبدء في المثال . 

سوف ننشئ  migration & Models  لكل جدول نريده ( المنتجات ـ المراجعات )

  1. المنتجات products
  2. المراجعات reviews
  3. المستخدمين Users – موجود مسبقا لا نحتاج لانشائه من جديد

نفتح الترمينال او شاشة الاوامر cmd or terminal ونكتب

اذا كنت تستخدم محرر atom or VS code يمكنك تثبيت اضافة terminal ليتم فتح شاشة الاوامر عن طريق نفس المحرر.

 

بعد الانتهاء من تنفيذها

Migrations

نذهب الى  ملفات migrations تحت مجلد database

نفتح  ملف xxxx_product_xx.php

ونحدد الاعمدة التي نريدها في جدول المنتجات

  1. رقم معرف
  2. اسم المنتج
  3. وصف المنتج
  4. سعر المنتج
  5. صورة المنتج
  6. رقم معرف المستخدم الذي اضاف هذا المنتج .
  7.  تاريخ اضافة المنتج
  8.  تاريخ تحديث المنتج

 

نضع الكود اللي بالاسفل داخل function run

 

 

 

وهذا السطر داخل function down

هنا انتهينا من تهيئة ملف المنتجات .

تبقى ملف المراجعات

ملف المراجعات مسؤول عن التقييمات واراء العملاء في المنتج 

ويحتوي الجدول على الاعمدة التالية :

  1. رقم معرف
  2. نص المراجعة
  3. رقم معرف المنتج
  4. رقم معرف المستخدم – كاتب المراجعة .
  5. تاريخ اضافة المراجعة
  6. تاريخ تحديث المراجعة

 

نضع الكود اللي بالاسفل داخل function run

 

 

 

وهذا السطر داخل function down

 

هنا انتهينا من تهيئة ملف المراجعات

Models

الان نذهب لملفات Models بحيث نكون العلاقات فيما بين الجداول ونربطها ببعض .

نفتح مجلد app ونحصل في اسفله ملفات models التي انشأناها .

 Product.php

راح اوصف ما سوف نفعله شفهيا لتكون الصورة واضحة قبل الاكواد

المنتج سوف يكون لديه الكثير والكثير من المراجعات والتقييمات ،

اذاً علاقته بجدول المراجعات Review علاقة one product has many reviews

المنتج سوف يكون له مستخدم واحد فقط هو المالك له ، بمعنى المنتج ينتمي الى مستخدم واحد فقط

لهذا السبب سوف تكون علاقة المنتج بجدول المستخدم one product has one user.

ولهذا السبب راح ننشئ functions يعمل على هذه العلاقات

 

كذا انتهينا من ربط العلاقات من ناحية المنتج

ننتقل لملف المراجعات

Review.php

هذا الملف مسؤول عن علاقة المراجعة او التقييم بالجداول الاخرى ،

وكما نعلم ان لكل مراجعة تكون متعلقة بمنتج واحد وهذا يعني ان العلاقة تكون on review to one product

أي ان المراجعة تنتمي لمنتج واحد فقط

وأيضا التقييم سوف يكتبه مستخدم واحد عن المنتج وهذا يعني ان العلاقة تكون

one review can write it by only one user

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

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

الان  راح ننشئ functions تقوم بعمل هذه العلاقات

 

 

 

User.php

ماذا عن المستخدم والعلاقة التي تكون من جهته بالمنتجات والمراجعات

المستخدم يستطيع انشاء منتج او اكثر وهذا يعني ان العلاقة one to many

المستخدم يستطيع عمل مراجعة او اكثر للمنتجات وهذا يعني ان العلاقة one to many ايضا

الزخ  🙂  هذا الكود في ملف User.php

 

 

 

الان نكون انتهينا من تهيئة Models.

لحظة لحظة عشان نتأكد انه شغلنا ماشي تمام راح ننفذ migration command لانشاء الجداول في قاعدة بيانات المشروع حقنا .

اذا تمام فيكون الوضع تمام التمام واذا ما كان تمام فيكون مش تمام التمام 🙂

ننفذ هذه الأمر على بركة الله

 

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

 الآن جاهزين للبدء في تهيئة عملية توليد البيانات وتخزينها في قاعدة بيانات المشروع 

راح تكون في تدوينة مستقلة

http://wp.me/p8ljSC-61