تقنية

الحقل متعدد القيم في البيانات: متى يغير ترتيب القائمة معناها؟

قائمة ألوان تعرض خيارات بلا أولوية في المثال وقائمة خطوات تحفظ تسلسل العمل
رسم أصلي لمثالين افتراضيين يوضحان دور معنى الحقل في إعداد القائمة.

الحقل متعدد القيم في البيانات يحتوي أكثر من عنصر داخل السجل نفسه. مصفوفات JSON تحفظ عناصر مرتبة، وقد تختلف أنواع عناصر المصفوفة؛ أما ما تعنيه القائمة في المهمة فيحتاج وصفا خاصا بالمصدر. [1]

الخلاصة السريعة

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

  • قائمة JSON تحفظ ترتيب عناصرها، لكن أهمية ذلك الترتيب لسؤالك تحدد من معنى الحقل. [1]
  • قائمة خيارات الألوان وخطوات تجميع مجسم تختلفان: تبديل خطوات عمل قد يغير المطلوب، بخلاف عرض مجموعة خيارات.
  • تكرار عنصر قد يكون خطأ أو حدثا متكررا صحيحا؛ قيد uniqueItems يفحص التفرد ولا يمثل قرار حذف آلي. [1]
  • وثق معنى القائمة الفارغة والمجهولة، ونوع العناصر ووحدة العد، قبل اختيار تمثيل للمدخلات.

ماذا تعني عدة قيم داخل سجل واحد؟

تتيح JSON Schema تحديد نوع عناصر القائمة وطولها بحدود مثل minItems وmaxItems. [1]

تخيل بطاقة افتراضية لعلبة رسم واحدة، فيها حقل «ألوان متاحة» وقيمتان: أزرق وأصفر. لا تصبح العلبة علبتين لأنها تتضمن عنصرين في هذا الحقل. قبل تجهيز البيانات نكتب أن وحدة السجل علبة، وأن عناصر القائمة أسماء ألوان متاحة. إذا كان الهدف عد الخيارات، نعد العناصر وفقا لهذا التعريف؛ وإذا كان الهدف عد العلب، نعد السجلات أو معرفاتها المناسبة.

متى نحتاج الترتيب نفسه؟

في مثال الألوان، نقترح أن يعامل التطبيق القيم كاختيارات متاحة؛ لا نقصد أن اللون الأول أهم. أما بطاقة تجميع مجسم ورقي، فتحتوي قائمة خطوات: طي الجزء، ثم إدخال اللسان في الفتحة. عكسهما قد يغير تعليمات العمل المقصودة. الأمثلة من إنشاء الكاتب ولم نجرب التجميع فعليا.

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

هل نحذف كل عنصر مكرر؟

يمكن للمخطط استعمال uniqueItems للتحقق من عدم تكرار عناصر المصفوفة. [1]

لو ورد الأزرق مرتين في حقل الخيارات، نراجع هل ذلك تسجيل زائد وفقا لاتفاق المثال. لكن قائمة «الألوان المختارة في ثلاث سحبات» قد تحتوي أزرق وأصفر وأزرق، وتصف هنا ثلاث مرات اختيار. إزالة الأزرق الأخير تفقد حدثا، إذا كانت هذه دلالة المصدر.

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

ماذا عن القائمة الفارغة أو غير المعروفة؟

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

نوصي بتوثيق نوع كل عنصر، وأهمية الترتيب والتكرار، ومعنى الفارغ والمجهول، ووحدة العد. وإذا قررنا لاحقا توسيع العناصر إلى صفوف، نحفظ معرف العلبة ولا نعد الصفوف الجديدة علبا إضافية. هذا المقال يشرح دلالة الحقل؛ لا يقدم تجربة تحويل أو وصفة تضمن تحسن النموذج.

المصادر ومتابعة القراءة

  1. JSON Schema: array (يفتح في نافذة جديدة)json-schema.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.