اذهب إلى المحتوى

ساره ابوشعاله

الأعضاء
  • المساهمات

    24
  • تاريخ الانضمام

  • تاريخ آخر زيارة

أجوبة بواسطة ساره ابوشعاله

  1. بتاريخ On 24‏/5‏/2024 at 21:56 قال El Sayed El Tohamy:

    دعينا نتفق أولًا على شيء هام جدًا وهو أنه لا أفضلية مطلقة لأي شيء، فلا يمكننا الجزم بأن MongoDB أفضل دائمًا من MySQL أو العكس، وإنما نقول الأنسب على حسب المشروع، فيمكن لنفس المبرمج أن يطور تطبيقين يستخدم في الأول MySQL بينما يستخدم في الآخر MongoDB ، لماذا؟

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

    هيا إلى مثال عملي (فبالمثال يتضح المقال) وليكن المشروع الذي تقومين بالعمل عليه وهو تطبيق حجز قاعات المناسبات:

    في هذا التطبيق يواجههنا احتمالان:

    الاحتمال الأول: أن خصائص الحجز واضحة ومحددة وثابتة، بمعني كل حجز له تاريخ، عدد مدعويين، عدد مشروبات، عدد وجبات.

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

    الاحتمال الثاني: خصائص الحجز تتنوع وتختلف بشكل كبير جدًا لكل حجز،

    فهناك حجز يتم فيه تحديد التاريخ وعدد المدعويين فقط

    وحجز آخر يتم فيه تحديد التاريخ واسم الفرقة وعدد الوجبات

    وحجز ثالث يتم فيه تحديد التاريخ وعدد المدعويين ونظام الإضاءة وعدد الوجبات وفريق التصوير

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

    وباتباع المثال السابق يمكن تحديد نوع قواعد البيانات في كل مشروع.

     

    شكراً لك على الشرح الأكثر من رائع

     

    بتاريخ On 24‏/5‏/2024 at 21:56 قال El Sayed El Tohamy:

    دعينا نتفق أولًا على شيء هام جدًا وهو أنه لا أفضلية مطلقة لأي شيء، فلا يمكننا الجزم بأن MongoDB أفضل دائمًا من MySQL أو العكس، وإنما نقول الأنسب على حسب المشروع، فيمكن لنفس المبرمج أن يطور تطبيقين يستخدم في الأول MySQL بينما يستخدم في الآخر MongoDB ، لماذا؟

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

    هيا إلى مثال عملي (فبالمثال يتضح المقال) وليكن المشروع الذي تقومين بالعمل عليه وهو تطبيق حجز قاعات المناسبات:

    في هذا التطبيق يواجههنا احتمالان:

    الاحتمال الأول: أن خصائص الحجز واضحة ومحددة وثابتة، بمعني كل حجز له تاريخ، عدد مدعويين، عدد مشروبات، عدد وجبات.

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

    الاحتمال الثاني: خصائص الحجز تتنوع وتختلف بشكل كبير جدًا لكل حجز،

    فهناك حجز يتم فيه تحديد التاريخ وعدد المدعويين فقط

    وحجز آخر يتم فيه تحديد التاريخ واسم الفرقة وعدد الوجبات

    وحجز ثالث يتم فيه تحديد التاريخ وعدد المدعويين ونظام الإضاءة وعدد الوجبات وفريق التصوير

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

    وباتباع المثال السابق يمكن تحديد نوع قواعد البيانات في كل مشروع.

     

    يوجد لدي سؤال اخر 

    اريد توضيح نقطة انه قاعدة البيانات ستكون في حالة تطوير مستمر و عندما قرأت عن القواعد البيانات العلائقيه ف هيا غير مناسبة لمثل هذا النوع من التطبيقات لانه ستسبب مشاكل على غرار قواعد البيانات الغير علائقيه ف كيف يمكنني من هده النقطه تحديد الأفضل بالنسبة لي!

     

  2. بتاريخ On 14‏/5‏/2024 at 18:06 قال Mustafa Suleiman:

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

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

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

    • معلومات عن الصالات: الموقع، السعة، السعر، الميزات.
    • معلومات عن العملاء: الاسم، البريد الإلكتروني، رقم الهاتف.
    • بيانات الحجوزات: تاريخ الحجز، وقت الحجز، نوع المناسبة.

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

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

    وللعلم MongoDB مجانية لكن ستحتاجين إلى استضافة VPS لتثبيتها، أما إذا أردتي خدمة سحابية فيوجد MongoDB  Atlas.

    و MongoDB ستكون خيارًا أفضل في حال تتوقعين نموًا سريعًا لتطبيقك وتحتاجين إلى تخزين بيانات غير منظمة.

    إذًا في مشروعك MySQL هي الخيار الأنسب.

    عندما قمت بالمرور على اغلب المسارات وجدت انه معظمهم يستخدمون mango db مع بيئة عمل node.js t فهل تنصحني ان اكمل تعلمها و لماذا وجدت mysql مناسبة اكثر لمشروعي مع انك قمت بذكر مميزاتها و التي تعد افضل من mysql

     

    • أعجبني 1
  3. انا اقوم بعمل تطبيق ويب لحجز صالات المناسبات 

    و اريد ان ابدا ببناء قاعدة البيانات و لكن الحيره هنا في ايهما سأستخدم mangodb و mysql و ميزات كل واحده منهما و ايضا اسعار الاستضافه مثل godaddy قواعد mysql مجانيه علي خلاف mangodb فهل سأستطيع ان اجد مشتضيف مجاني لقواعد mangodb

    • أعجبني 1
  4. بتاريخ الآن قال محمد_عاطف:

    نعم بالفعل يمكن استخدام php واطار عمل laravel مع اى اطار عمل للواجهات الامامية سواء react او vue او حتى angular .

    ويمكن تحقيق ذلك بعدة طرق :

    1. يمكنك استخدام لارافيل لتوفير apis فقط واستدعاء تلك ال apis واستخدامها فى react او اى اطار عمل اخر, ولكن هذه الطريقة ستجعل كود الواجهة الخلفية منفصل عن الواجهة الامامية ويجب رفع كل منهما على سيرفر منفصل .
    2. يمكنك استخدام مكتبات مثل vite و laravel/ui لربط react مع laravel فى نفس المشروع و هنا ستعتمد اكثر على لغة php وليس react او javasript .

    ونصيحتى هى استعمال الطريقة الاولى لان الطريقة الثانية ستاخذ منكى وقت اطول لتعلم مكتبة vite و laravel/ui وايضا من الممكن ان تجدى صعوبة فى بداية الامر فى فهم كيفية سير الامور. لذلك يجب انشاء مشروعين منفصلين مشروع laravel وهو الواجهة الخلفية والثانى هو react للواجهة الامامية وربطهم عن طريق ال APIS.

    هل فكرة العمل على مشروع في سيرفر منفصل فكره جيده؟ لاننا في العاده نقوم بالعمل على سيرفر واحد فقط.

     

  5. نحن نعمل على مشروع تخرج و لدينا مدة محدوده لتنفيذ موقع website و لن يسعفنا الوقت في استخدام تقنيات معقده و تاخذ المزيد من الجهد كاستخدام node.js لهذا نريد ان نعرف هل يمكن استخدام javascript مع اطار عمل react ك frontend و استخدام php مع اطار عمل laravel ك backend ؟

    • أعجبني 1
×
×
  • أضف...