Beshoy Ehab3 نشر 18 سبتمبر 2021 أرسل تقرير نشر 18 سبتمبر 2021 (معدل) عندما انشئ منشورات كثيره و احذف اولهم مثلا او من المنتصف يبقي ال id لكل المنشورات التي بعده بنفس ال id القديم الخاص بها و أنا لا أريد ذلك أنا أريد إن يكون ال id على حسب الترتيب الفعلي لهم كيف ذلك تم التعديل في 18 سبتمبر 2021 بواسطة Wael Aljamal توضيح السؤال 2 اقتباس
0 Hassan Hedr نشر 18 سبتمبر 2021 أرسل تقرير نشر 18 سبتمبر 2021 المعرف id قيمته تبقى ثابتة لكل سطر في جدول البيانات، لا يجب ان يتغير أو ان تعتمد عليه لمعرفة ترتيب العناصر فهو يميز كل منشور عن الاخر يمكنك معرفة ترتيب كل منشور ضمن جميع المنشورات المستعلم عنها باستخدام for in مع enumerate كالتالي for index, post in enumerate(posts_queryset): # index // ترتيب هذا المنشور ... اقتباس
0 شرف الدين حفني نشر 18 سبتمبر 2021 أرسل تقرير نشر 18 سبتمبر 2021 ﻻ يجب عمل شئ كهذا , حيث أن الid هو عبارة عن index , ال index عبارة عن قيمة مميزة يتم تخزينها في مكان معين في قاعدة البيانات لتسهيل الوصول إليها في المرات القادمة ويتم ذلك بإستخدام هياكل بيانات وخورزميات مثل ال binary search tree فمثلاً لو كان لدينا هذا الصف { name:"sharaf", id:4 } تقوم قاعدة البيانات تلقائياً بتخزين المعرف(id)في مكان خاص مع باقي المعرفات (ids) , فعندما نقوم بالبحث بإستخدام المعرف, يتم الوصول إليه بشكل أسرع بسبب إستخدام الbinary search tree بينما, ولذلك ﻻ يجب تغيير الid , أما في حالة أنك تريد معرفة ترتيب العناصر حسب دخولهم يمكنك إستخدام حل الأستاذ حسن حيدر اقتباس
0 Wael Aljamal نشر 18 سبتمبر 2021 أرسل تقرير نشر 18 سبتمبر 2021 السبب الرئيسي في منعم إعادة ترقيم الأسطر في جدول البيانات وخاصة المفتاح الأساسي هو إمكانية ارتباط القيم من هذا الجدول إلى جداول أخرى، مثلا لديك جدول الموظفين، وجدول الأقسام، ووضعنا موظف واحد كرئيس أو عامل لدى الأقسام، والتي تتم عن طريق وضع رقم المعرف id الخاص بالموظف في أحد خواص جدول الأقسام، حيث أن أي تعديل في أرقام الموظفين سيؤدي لحدوث خطأ في الربط بين الجدولين.. اعتبر أن الموظف استقال، وأخذ رقمه موظف آخر في جدول قاعدة البيانات.. هل سيأخذ وظيفته ومكانه أيضاً؟ كلا.. تخيل أن يتغير ترقيم الموظفين .. سأضع مثال لبنية الجدولين ولاحظ استحالة تعديل ترقيم الموظفين.. جدول موظفين اسم رقم الموظف 1 وائل 2 إياد 3 سامح ثم جدول الأقسام اسم القسم رقم المدير 2 موارد بشرية 1 مدربين 3 بايثون في حال حذف وائل من الجدول الأول سيصبح إياد رقمه 1، و سامح رقمه 3، لاحظ رقم المدير (الذي هو موظف) من الجدول الثاني سيتغير الموظف مدير القسم لكل المستخدمين.. وجود قفزات في id لا تمثل أي مشكلة في سرعة أداء قاعدة البيانات يمكن تطبيق الاستعلام التالي على القاعدة في حال عدم ارتباط الجدول بجداول أخرى: alter table MYTABLE auto_increment = 1; أو SET @reset = 0; UPDATE YOUR_TABLE_NAME SET id = @reset:= @reset + 1; اقتباس
السؤال
Beshoy Ehab3
عندما انشئ منشورات كثيره و احذف اولهم مثلا او من المنتصف يبقي ال id لكل المنشورات التي بعده بنفس ال id القديم الخاص بها و أنا لا أريد ذلك أنا أريد إن يكون ال id على حسب الترتيب الفعلي لهم كيف ذلك
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.