صفحة نتائج البيانات المفتوحة وعد السجلات سؤالان مختلفان. قد يحصل المساعد على دفعة محددة لأن الواجهة قسمت النتائج إلى صفحات. نقرأ وصف Socrata الحالي ونمثل صيغة SODA2 المذكورة فيه، دون افتراض أن كل بوابة بلدية تعمل بها أو أن قائمة قصيرة استوفت سؤال الحصر.
الخلاصة السريعة
لا؛ عدد العناصر في صفحة محددة لا يبين وحده عدد جميع النتائج المطابقة، وتختلف طريقة طلب الصفحات باختلاف إصدار الواجهة.
- يفرق دليل Socrata بين SODA2 ذات limit وoffset وبين SODA3 التي تعرض pageSize وpageNumber للصفحات؛ لا تنقل صيغة إصدار إلى آخر تلقائيا. [1]
- في قائمة مؤلفة ثابتة من سبعة سجلات مرتبة، وبحجم ثلاثة، تعيد الإزاحات 0 و 3 و 6 الصفحات ذات الأعداد 3 و 3 و 1؛ الأولى ليست حصرا للسبعة.
- ينبه دليل Socrata للترتيب إلى أن النتائج ليست مرتبة ضمنيا وإلى تحديد order عند التنقل. [2] نثبت ترتيب المثال وعضوية سجلاته؛ ترتيب الصفحة لا يثبت أن البيانات بقيت ثابتة بين الطلبات.
- احفظ المورد والشرط والإصدار وترتيب الصفحات ودليل اكتمال الجمع أو ناتج عد مستقل مناسب. لا نستخرج عدد المدينة كلها من صفحة أو من قائمة تكررت فيها سجلات.
أي صيغة للصفحات يصفها المصدر؟
يعرض دليل Socrata المحدث في سبتمبر 2026 صيغة SODA2 بمعلمتي limit وoffset، وصيغة SODA3 بحجم صفحة ورقمها داخل كائن page. [1]
قبل أن يكتب المساعد طريقة جمع النتائج، نحدد إصدار نقطة النهاية والمورد المقصود. لا نكتب أن رقم الصفحة وإزاحة السجلات اسمان للقيمة نفسها؛ الإزاحة تعد المواضع المتروكة، بينما رقم الصفحة يتبع عقد الإصدار.
نعزل هنا مثال SODA2 الذي أورده الدليل للمقارنة. لا نقدم رابط خدمة نشطة أو تعليمات مصادقة، ولا نرسل استعلاما. الأسماء التقنية تبين معنى تقسيم النتيجة دون وصف تنفيذ حصل.
ماذا تعيد الإزاحات في قائمتنا؟
نخترع قائمة ثابتة تضم المعرفات ق 1 إلى ق 7 بهذا الترتيب، بعد تطبيق شرط واحد معلن. نختار حجم الصفحة ثلاثة، ونبدأ عند إزاحة صفر. الصفحة الأولى تحمل ق 1 وق 2 وق 3.
عند إزاحة ثلاثة نحصل في التمرين على ق 4 وق 5 وق 6، وعند ستة نحصل على ق 7 فقط. مجموع أطوال الصفحات 3+3+1 يساوي سبعة ضمن هذه القائمة المعروفة والثابتة. ليست الأعداد نتائج اتصال ببوابة.
لو وصل إلى المساعد أول ثلاثة فقط، فالجواب الأمين «وصلت ثلاثة سجلات في هذه الصفحة». لم يثبت عدد المطابق كله من طولها وحده. ولا ننقل السبعة من تمريننا إلى مورد حقيقي لم نجمع بياناته.
| الإزاحة المؤلفة | المعرفات في الصفحة | عددها |
|---|---|---|
| 0 | ق 1، ق 2، ق 3 | 3 |
| 3 | ق 4، ق 5، ق 6 | 3 |
| 6 | ق 7 | 1 |
لماذا لا تكفي زيادة الإزاحة وحدها؟
يطلب دليل Socrata للترتيب تحديد ترتيب النتائج عند التنقل، لأنها لا تأتي بترتيب ضمني مضمون. [2]
نعلن في المثال ترتيبا ثابتا بمعرفات مميزة، ولا نختار صفحة لاحقة تحت شرط مختلف ثم نجمعها بالأولى. فإذا تكرر ق 3 في المادتين اللتين وصلتا، فإن جمع الطولين لا يثبت وجود معرفين جديدين لذلك السجل.
كما أن ترتيب القائمة لا يخبرنا وحده إن أضيفت سجلات أو أزيلت بين وقتي الطلب. نحتاج أساسا لثبات العضوية إن أردنا الاستنتاج الخاص بقائمتنا؛ لم يزعم المثال أن order يجمد قاعدة البيانات أو يمنح لقطة تاريخية.
أي جواب نكتب بعد المراجعة؟
نقترح بطاقة تذكر المورد والمرشح وإصدار الواجهة ووقت الجمع والصفحات المتاحة ومعرفاتها. عند غياب دليل اكتمال النتيجة، نبقي وصف «الصفحة المتاحة» ولا نبدله بوصف «كل المسجل».
يمكن استعمال ناتج عد مستقل إذا عرفنا أنه يخص المورد والشرط المطلوبين. لكنه لا يثبت صحة كل سجل أو تمثيل كل نشاط في المدينة؛ نطاق البيانات سؤال آخر. ولا نقترح تنزيل سجلات خاصة أو تجاوز شروط الوصول.
لم نفحص بوابة أو نجرب مساعدا. هذه ورقة تفسير لصفحات مؤلفة؛ قيمتها فصل حد العرض من الحصر، مع إبقاء الإصدار والترتيب وثبات المدخل شروطا ظاهرة للقارئ.
المصادر ومتابعة القراءة
- Socrata: Using the SODA3 API (يفتح في نافذة جديدة)support.socrata.com
- Socrata: The ORDER BY Clause (يفتح في نافذة جديدة)dev.socrata.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
