اتفاقيات تسمية قاعدة البيانات لوحات الإدارة التي تبقى قابلة للقراءة
استخدم قواعد تسمية جداول وحقول لوحة الإدارة لتظل الشاشات المولدة قابلة للقراءة: قواعد واضحة للجداول والحقول، enums، العلاقات، وقائمة تحقق سريعة.

لماذا الأسماء تقرر ما إذا كانت لوحة الإدارة تبدو واضحة أم فوضوية
معظم لوحات الإدارة تُنشأ من نموذج البيانات لديك. أسماء الجداول والحقول تتحول إلى عناصر القائمة، عناوين الصفحات، رؤوس الأعمدة، تسميات الفلاتر، وحتى الكلمات التي يكتبها الناس في البحث.
عندما تكون الأسماء واضحة، يستطيع المشرف مسح قائمة وفهمها في ثوانٍ. عندما تكون الأسماء غير واضحة، يتوقف، يخمن، يفتح سجلًا، يعود ويحاول مرة أخرى. ذلك التردد يتراكم. يصبح أسئلة مثل “كيف أجد العميل الصحيح؟” ودروس تدريب لا يقرأها أحد.
المطورون عادةً يسمون الأشياء لتسهيل البناء وتصحيح الأخطاء. العاملون يسمون الأشياء لتسهيل إنجاز العمل. قد يقبل المطور بـ acct أو addr1 أو stat لأنه يتذكر ما تعنيه. العامل يحتاج إلى “Account”، “Address line 1”، و“Status” بدون فك تشفير.
في شاشة الإدارة، عادةً ما يعني "قابل للقراءة":
- يمكنك مسح جدول وفهم كل عمود دون فتح صف.
- يمكنك البحث والتصفية بنفس الكلمات التي تستخدمها يوميًا.
- يمكنك الفرز والمقارنة بدون مفاجآت (مثلاً، التواريخ تظل تواريخ، والحالات متسقة).
إذا كنت تستخدم منصة تولّد الشاشات من النموذج (مثل AppMaster وData Designer أو طرق عرض شبيهة بلوحة إدارة)، تصبح التسمية جزءًا من تصميم واجهة المستخدم. الأسماء الجيدة تعطيك شاشات افتراضية نظيفة من اليوم الأول، قبل أن تبدأ بتحسين التسميات والتخطيطات.
قاعدة تسمية بسيطة يمكن لفريقك بأكمله اتباعها
إذا أردت أن تبدو الشاشات المولدة نظيفة من اليوم الأول، اتفق على قاعدة قبل أن يضيف أحد أول جدول. معظم مشاكل التسمية ليست فنية، بل مشاكل تناسق.
اختر نمط معرف واحد ولا تخلطه. لقواعد البيانات، snake_case عادةً أسهل للقراءة والبحث. إذا كان الستاك يتوقع camelCase، التزم به في كل مكان (جداول، أعمدة، مفاتيح خارجية، enums). التبديل بين الأساليب أثناء المشروع هو ما يجعل التسميات والفلاتر تبدو عشوائية.
قاعدة تعمل لمعظم الفرق:
- استخدم كلمات كاملة:
customer_id، وليسcust_id;description، وليسdesc. - استخدم أسماء أشياء واضحة للأسماء وأفعالًا واضحة للإجراءات:
invoice،payment،refund_requested. - استخدم أسماء طوابع زمنية متسقة:
created_at،updated_at،deleted_at. - تجنب كلمات غامضة مثل
data،info،value، أوtypeما لم تضف سياقًا (مثلًاshipping_address،payout_method). - حافظ على تناسق المفرد والجمع (العديد من الفرق تستخدم جداول جمع مثل
customersوأعمدة مفردة مثلcustomer_id).
اكتب مسردًا صغيرًا واجعله ظاهرًا. قرر مبكرًا هل ستستخدم customer، client، account، أو user، ثم التزم بمصطلح واحد. افعل ذلك أيضًا بالنسبة لـ “order” مقابل “purchase” أو “ticket” مقابل “case”.
فحص سريع: إذا استطاع شخصان النظر إلى عمود مثل account_status والاتفاق على ما يعنيه بدون سؤال، فالقاعدة تعمل. إذا لم يستطيعوا، أعد تسميته قبل بناء الشاشات والفلاتر فوقه.
قواعد تسمية الجداول التي تتطابق بشكل واضح مع القوائم والقوائم الجانبية
تحول معظم لوحات الإدارة أسماء الجداول إلى عناصر قائمة، عناوين قوائم، ومسارات التنقل. المخطط الخاص بك ليس للمهندسين فقط. إنه المسودة الأولى لواجهة المستخدم.
اختر نمطًا واحدًا لجداول الكيانات والتزم به: مفرد (user، invoice، ticket) أو جمع (users، invoices، tickets). المفرد غالبًا ما يقرأ أفضل في عناوين النماذج (“Edit Ticket”)، بينما الجمع قد يبدو أفضل في القوائم (“Tickets”). أيًا كان، عدم المزج بينهما يجعل التصفح غير متناسق.
سمِّ الجداول بما هي عليه، لا بما تفعله. الجدول يجب أن يمثل شيئًا يمكنك الإشارة إليه. payment شيء؛ processing فعل. إذا أضفت لاحقًا refunds وretries وsettlements، يصبح اسم "processing" مضللاً.
قواعد تحافظ على نظافة القوائم:
- استخدم أسماء أسماء ملموسة (
customer،subscription،invoice،ticket_message). - تجنب جداول الحاويات للبيانات الدائمة (
settings،misc،temp،data). قسمها إلى كيانات حقيقية (notification_setting،tax_rate،feature_flag). - فضل أسماء مركبة قصيرة وقابلة للقراءة مع underscores (
purchase_order،support_ticket) بدلًا من الاختصارات. - أضف بادئة للوحدة فقط عندما تمنع التصادم (مثال:
billing_invoiceمقابلinvoice). إذا أضفت بادئة، طبقها باستمرار عبر الوحدة.
إذا كنت تستخدم AppMaster لتوليد الشاشات مباشرة من المخطط، فعادةً ما تعطي أسماء الجداول الثابتة القائمة على الأسماء الاسمية قائمة ومشاهدة افتراضية نظيفة مع وقت تنظيف أقل لاحقًا.
جداول الربط والمعرفات: الحفاظ على قابلية قراءة علاقات many-to-many
علاقات many-to-many هي المكان الذي تبدأ فيه لوحات الإدارة غالبًا بالظهور فوضوية. إذا تم تسمية جدول الربط ومفاتيحه بشكل جيد، تظل الشاشات المولدة قابلة للقراءة بدون تنظيف يدوي.
ابدأ بقاعدة مملة واحدة ولا تكسرها: لكل جدول مفتاح أولي اسمه id. لا تخلط user_id كمفتاح أولي في جدول وid في آخر. المعرفات الموحدة تجعل العلاقات متوقعة، وتساعد النماذج والحقول المرجعية المولدة على البقاء متسقة.
بالنسبة لجداول الربط البحتة، سمّها باسم الكيانين باتباع نمط وترتيب واحد. الخيارات الشائعة هي الترتيب أبجديًا (product_tag) أو "الشيء الرئيسي أولًا" (user_role). اختر ترتيبًا واحدًا واحتفظ به في كل مكان.
تجنب الأسماء الغامضة مثل links أو mappings ما لم يكن الجدول فعلاً يحمل روابط عامة بين كائنات مختلفة. في معظم لوحات الإدارة، الوضوح يفوق الإبداع.
متى يصبح جدول الربط كيانًا حقيقيًا
إذا كان للعلاقة حقول إضافية، عاملها ككائن مستقل وسمّها باسم اسم فاعل يفهمه الناس: membership، assignment، subscription. على سبيل المثال، إذا كان لدور مستخدم الحقول starts_at، ends_at، وgranted_by، فقد يكون user_role مناسبًا، لكن membership قد يقرأ أفضل في الواجهة.
مجموعة قواعد بسيطة تحافظ على مظهر مهني للشاشات:
- استخدم
idكمفتاح أولي في كل جدول. - سمِّ جداول الربط باسم الكيانين بترتيب ثابت (
user_role). - استخدم مفاتيح خارجية واضحة مثل
user_idوrole_id. - أضف قاعدة تفريد تطابق الواقع (مثلاً، دور واحد لكل مستخدم).
- إذا سمحت بالتاريخ، اجعل قاعدة التفريد تتطابق مع السجلات "النشطة" (مثلاً، فريدة حيث
ended_atتكون null).
هذه الاختيارات تصمد مع نمو بياناتك، وتعمل جيدًا مع AppMaster’s Data Designer حيث يمكن توليد الشاشات مباشرة من النموذج.
أنماط تسمية الحقول التي تُنتج أعمدة وفلاتر واضحة
أسماء الحقول تفعل أكثر من مساعدة المطورين. هي التي تُحدد ما يراه المستخدمون كرؤوس أعمدة، تسميات فلترة، وحقول نماذج.
اللاحقات المتوقعة تزيل التخمين:
- استخدم
_idللمفاتيح الخارجية:customer_id،assigned_agent_id. - استخدم
_atللطوابع الزمنية:created_at،paid_at،closed_at. - استخدم
_countللعدادات:login_count،attachment_count.
يجب أن تقرأ البوالين (booleans) كجمل واضحة. فضّل is_ وhas_ حتى تبدو مربعات الاختيار مفهومة بسرعة: is_active، has_paid، is_verified. تجنب النفي المزدوج مثل is_not_approved. إذا احتجت حالة "لا"، مثلًّا صمّم الحقل إيجابيًا وعكس المنطق في الكود.
حقول المال مصدر شائع للبلبلة في جداول الإدارة. اختر نهجًا واحدًا والتزم به: خزّن الوحدات الصغرى (مثل السنت) كعدد صحيح، أو خزّن كسورًا ذات دقة ثابتة. سمِّ الحقل بحيث لا يضطر أحد للتخمين. مثال: total_amount_cents + currency_code، أو total_amount + currency_code. لا تخلط price، amount، وtotal إلا إذا كانت تمثل مفاهيم مختلفة.
الحقول النصية يجب أن تكون محددة للغرض، وليس فقط للنوع. description موجّه للمستخدم. internal_comment خاص داخليًا. notes هو صندوق عام ويجب استخدامه بحذر. إذا كان لديك ملاحظات متعددة، سمِّها بحسب الجمهور: customer_note، agent_note.
حقول الاتصال يجب أن تكون حرفية لأنها غالبًا ما تصبح فلاتر سريعة: website_url، contact_email، billing_email. في الشاشات المولدة من AppMaster، أسماء كهذه عادةً ما تتحول إلى تسميات افتراضية نظيفة.
العلاقات والمفاتيح الخارجية: أسماء تشرح نموذج البيانات
العلاقات الجيدة تُقرأ كجمل إنجليزية بسيطة. عندما تُولّد لوحة الإدارة من قاعدة البيانات، غالبًا ما تصبح أسماء المفاتيح الخارجية عناوين أعمدة، فلاتر، وتسميات حقول النموذج.
احتفظ بقاعدة واحدة: عمود المفتاح الخارجي هو اسم الجدول المشار إليه زائد _id. إذا كان لديك customer.id فاستخدم customer_id. هذا الاتساق يجعل من الواضح ما يشير إليه العمود.
العلاقات الذاتية تحتاج وضوحًا إضافيًا لأنها سهلة الفهم الخاطئ لاحقًا. تجنب related_id العام. استخدم أسماء تشرح الاتجاه والمعنى مثل parent_id للأشجار، manager_id لهيكل تنظيمي، أو merged_into_id لعمليات إزالة التكرار.
عندما تتضمن العلاقة جدول ربط، سمِّه بحيث يُقرأ كجملة. مثال: ticket_assignee.user_id أوضح من ticket_user.user_id إذا كان الدور هو "assignee" (وليس "reporter" أو "watcher").
فحوص عملية تمنع معظم المشاكل:
- لا تعيد استخدام
owner_idمع معانٍ مختلفة عبر الجداول. فضّلcreated_by_user_id،account_manager_user_id، أوbilling_contact_id. - إذا كان لديك علاقات متعددة لنفس الجدول، أدرج الدور:
requested_by_user_idوapproved_by_user_id. - اختر مؤشر حذف ناعم واحد والتزم به.
deleted_atمفهوم على نطاق واسع ويعمل جيدًا مع الفلاتر.
إذا بنيت شاشات في AppMaster لاحقًا، فهذه الأسماء تظهر في كل مكان، لذا قليل من العناية هنا يوفر الكثير من تنظيف واجهة المستخدم لاحقًا.
القيم المحددة (Enums) وحقول الحالة التي تبقى مفهومة مع مرور الوقت
إذا تُولّد لوحة الإدارة من قاعدة البيانات، أسرع طريقة لجعل الشاشات تبدو فوضوية هي نشر المعنى عبر الكثير من الأعلام الصغيرة. فضّل enum واحد واضح لدورة حياة السجل، واحتفظ بالأعلام الإضافية فقط للسلوك المختلف حقًا.
قاعدة مفيدة: إذا كان المستخدمون سيسألون "أين هذا العنصر في رحلته؟" فهذه حالة (status). إذا كان السؤال "هل يجب إخفاؤه؟" أو "هل هو مقفل؟" فهذا boolean منفصل.
حالة واحدة أفضل من خمسة بوليانية
بدلاً من is_new، is_in_progress، is_done، is_cancelled استخدم ticket_status واحدًا. يقرأ أفضل في أعمدة القوائم، الفلاتر، وإجراءات الدفع بالجملة. كما يجنب مجموعات مستحيلة مثل "done + in_progress".
حافظ على قيم enum ثابتة. يمكن تغيير نص الواجهة، لكن القيم المخزنة لا يجب أن تتغير. خزّن pending، وليس waiting_for_review. خزّن rejected، وليس rejected_by_manager. يمكنك دائمًا عرض تسميات أكثر ودية لاحقًا بدون ترحيل البيانات.
عندما تحتاج تفاصيل إضافية، أضف حقلًا ثانيًا بدلًا من إرباك حالة واحدة. مثال: احتفظ بـ payment_status كدورة حياة، وأضف failure_reason (نص) عند الحاجة.
سمِّ enums بحسب المجال (حتى تبدو الفلاتر منطقية)
استخدم بادئة النطاق حتى تظل الشاشات مقروءة عندما يكون لدى نماذج متعددة حقل "status":
payment_status(عملية الدفع)ticket_priority(أولوية الدعم)user_role(مستوى الوصول)invoice_status(دورة الفوترة)delivery_status(دورة الشحن)
فصّل دورة الحياة عن الأعلام التشغيلية. على سبيل المثال: status يصف مكان العنصر في سير العمل، بينما is_archived يعني أنه يجب إخفاؤه من القوائم اليومية.
اكتب جملة واحدة معنى لكل قيمة enum في ملاحظات الفريق. أنت أو من سيأتي بعدك سينسون الفرق بين cancelled وvoided. إذا كنت تستخدم AppMaster، تلك التعريفات القصيرة تساعد أيضًا على الحفاظ على تناسق القوائم المنسدلة والفلاتر عبر الويب والموبايل.
الحالات الشاذة: التواريخ، حقول التدقيق، وأعمدة "type"
أدلة التسمية تغطي عادةً الجداول والحقول الأساسية، لكن لوحات الإدارة تختلط في الحالات الشاذة. التواريخ، حقول التدقيق، وأعمدة "type" هي الأماكن التي تتحول فيها الأسماء المربكة إلى شاشات مربكة.
بالنسبة للتواريخ والطوابع الزمنية، اجعل الاسم يروي القصة: هل هو مخطط، فعلي، أم تذكير؟ نمط بسيط هو معنى شبيه بالفعل زائد لاحقة واضحة. مثال: due_at (موعد نهائي مخطط) وcompleted_at (إنهاء فعلي) تظهر كأعمدة وفلاتر مفهومة. تجنب أزواج غامضة مثل start_date وend_date عندما تقصد فعليًا scheduled_at وfinished_at.
العلاقات الاختيارية فخ شائع آخر. لا تخترع أنماطًا جديدة لكل جدول. احتفظ باسم العلاقة ثابتًا ودع "اختياري" يعبّر عنه بوجود null، لا بتغيير اسم الحقل. يجب أن يبقى manager_id manager_id حتى لو كان اختياريًا.
العناوين قد تبدو جيدة في الكود لكنها سيئة في الجداول. الخطوط المرقمة مقبولة فقط إذا اتفق الفريق على معناها في كل مكان. اجعلها صريحة:
address_line1،address_line2،city،region،postal_code،country_code- تجنّب
address1،address2(أصعب للقراءة وأسهل للتكرار)
حقول التدقيق يجب أن تكون مملة عمدًا:
created_at،updated_atcreated_by_id،updated_by_id(فقط إذا كنت بحاجة فعلًا لتعقب المستخدم)
كن حذرًا مع type. هي في الغالب عامة للغاية وتصبح قديمة بسرعة. بدلًا من type، سمِّ المعنى: payment_method، ticket_channel، customer_tier. في الشاشات المولدة من المخطط (بما في ذلك AppMaster)، هذا الاختيار الوحيد قد يكون الفارق بين فلتر واضح وقائمة مربكة.
مثال: تسمية نموذج تذكرة دعم يبدو جيدًا في الإدارة
إعداد دعم صغير وواقعي: العملاء يراسلون، الموظفون يردون، ويمكن إضافة وسوم للتذاكر. قواعد التسمية هي ما يجعل القوائم المنبعثة تلقائيًا، شاشات القوائم، والفلاتر واضحة.
ابدأ بأسماء جداول تقرأ كأسماء في الشريط الجانبي:
customerticketticket_messageticket_tagticket_tag_link
في معظم لوحات الإدارة، تصبح هذه تسميات مثل “Tickets” و“Ticket Messages”، ويبقى جدول الربط بعيدًا عن الواجهة.
لشاشة قائمة التذاكر، اختر أسماء حقول تتحول إلى رؤوس أعمدة وفلاتر واضحة:
subject،status،priorityassigned_to_id(يشير إلى مستخدم من طاقم العمل)last_message_at(يسمح بالفرز بالأحدث)created_at(قياسي ومتوقع)
القيم المحددة هي المكان الذي يكسر فيه قابلية القراءة لاحقًا، لذا اجعل المجموعة ثابتة وواضحة:
ticket_status:new،open،pending_customer،resolved،closedticket_priority:low،normal،high،urgent
خيار تسمية واحد يمنع الالتباس المستمر: لا تفرط في تحميل كلمة “customer”. في الدعم، المرسل ليس دائمًا العميل (قد يقدّم زميل طلبًا نيابة عن شخص آخر). إذا خزنت الشخص الذي أرسل التذكرة، سمّه requester_id، وخزن منفصلًا customer_id للحساب الذي عن موضوع التذكرة. هذا الفصل يحافظ على صدق النماذج والفلاتر من اليوم الأول.
خطوة بخطوة: كيف تسمي نموذجًا جديدًا قبل بناء الشاشات
أسهل طريقة للحفاظ على قابلية قراءة الشاشات هي تسمية الأشياء بينما تفكر بلغة بسيطة، لا أثناء البناء.
عملية قابلة للتكرار لكل ميزة
-
ابدأ بمسرد صغير (5 إلى 10 مصطلحات). اكتب الكلمات التي سيستخدمها زميل غير تقني في اجتماع، ثم اختر مصطلحًا مفضلًا لكل مفهوم (مثلاً “customer” مقابل “client”).
-
ارسم الشاشات المتوقعة: قائمة، تفاصيل، إنشاء، تعديل. لشاشة القائمة، قرر أي 5 إلى 8 أعمدة يجب أن تكون واضحة فورًا كرؤوس. إذا كان اسم الحقل سيبدو غريبًا كرأس، فهل هو بحاجة لإعادة تسمية؟
-
صِف الجداول والعلاقات، ثم سمّ الحقول باستخدام قواعد اللاحقات (
*_id،*_at،is_*،*_count). عندما تولّد الشاشات لاحقًا (بما في AppMaster)، هذه الأنماط تميل لإنتاج تسميات افتراضية نظيفة وفلاتر متوقعة.
قبل المتابعة، تأكد أنك لا تخلط الأنماط (customer_id في جدول وclientId في آخر). التناسق يتغلب على الذكاء.
-
عرّف القيم المحددة مبكرًا، لا بعد وجود الواجهة الأولى. اكتب جملة واحدة معنى لكل قيمة، كما لو كنت تشرحها لفريق الدعم. فضّل قيم يمكنها البقاء دون تغيير، مثل
pending،active،archived. -
قم بـ "قراءة رؤوس الأعمدة". تخيل أنك المشرف الذي يمسح جدولًا.
- هل “Created At”، “Updated At”، “Status”، “Assigned To”، “Total Amount” ستكون مفهومة بدون تدريب؟
- هل أي حقول تبدو كرموز داخلية (
tmp_flag،x_type،data1)? - هل الوحدات واضحة (
amount_centsمقابلamount،duration_secondsمقابلduration)?
إذا بدا أي شيء غير واضح عند قراءته بصوت عالٍ، أعد تسميته الآن. التسمية لاحقًا ممكنة، لكنها غالبًا ما تتسرب إلى التقارير والفلاتر والعادات.
أخطاء شائعة في التسمية تجعل لوحات الإدارة صعبة الاستخدام
إذا كان المخطط فوضويًا، ستبدو الشاشات فوضوية أيضًا، مهما كانت الواجهة جميلة. اتفاقيات التسمية أقل عن "الأسلوب" وأكثر عن قابلية الاستخدام اليومية.
الفخ الأول هو المفردات المختلطة. إذا جدول واحد يستخدم client وآخر يستخدم customer، ستبدو القوائم والفلاتر ونتائج البحث وكأنها تصف أشياء مختلفة. اختر كلمة واحدة لكل مفهوم أساسي واستخدمها في كل مكان، بما في ذلك أسماء العلاقات.
مشكلة شائعة أخرى هي الاختزال المفرط. الاختصارات مثل addr، misc، أو info توفّر أحرفًا قليلة لكنها تكلف وضوحًا كبيرًا في الجداول والتقارير.
خطأ ثالث هو تضمين تدفق واجهة المستخدم في قاعدة البيانات. حقل مثل new_customer_wizard_step منطقي أثناء الإطلاق، ثم يصبح مربكًا عندما يتغير التدفق أو تضيف مسارًا ثانيًا للتشغيل. خزّن الحقيقة التجارية (مثلاً onboarding_status) ودع الواجهة تقرر كيفية إرشاد الناس.
راقب أيضًا تحميل البوالين (booleans). عند إضافة is_new، is_open، وis_closed ستظهر تعارضات (اثنان صحيحان معًا) وفلاتر غير واضحة. فضّل حقل حالة واحد مع مجموعة صغيرة من القيم المسماة جيدًا.
علامات التحذير التي غالبًا تؤدي إلى شاشات إدارة قبيحة:
- اسمان مختلفان لنفس الشيء (
client_idهنا وcustomer_idهناك) - أعمدة سلة مهملات (
notes،misc،extra) التي تحمل بيانات مختلطة - أسماء تعتمد على وقت (
summer_campaign_*) والتي تبقى بعد انتهاء الحملة - عدة بوالين تحاول وصف حالة واحدة
- إعادة تسمية تمت بدون خطة ترحيل
إعادة التسمية ليست مجرد بحث واستبدال. إذا غيرت customer_phone إلى phone_number، خطّط للترحيل، حدّث أي شاشات مولدة، واحفظ التوافق الخلفي حيث يلزم (خصوصًا إذا أنظمة أخرى تقرأ الـ API). في AppMaster، الأسماء النظيفة تؤتي ثمارها فورًا لأن القوائم والنماذج والفلاتر ترث هذه التسميات من نموذجك.
قائمة تحقق سريعة قبل إطلاق لوحة الإدارة
قبل أن تعتبر المخطط "منتهيًا"، قم بتمريرة من منظور شخص سيعيش في لوحة الإدارة يوميًا.
- الجداول تبدو كأشياء حقيقية. يجب أن يستطيع زميل أن يقول ماذا يمثل جدول (
ticket،customer،invoice) دون تخمين. - الحقول الرئيسية تتبع لاحقات متوقعة. استخدم أنماطًا يلتقطها الناس بسرعة:
*_idللمرجع،*_atللطوابع الزمنية،*_amount(أو*_amount_cents) للمال، وis_*للأعلام البوليانية. - القيم المحددة ثابتة وواضحة. خزّن قيم مثل
pending،paid،failedبدلًا من عبارات واجهة قد تتغير. - زميل جديد يمكنه استنتاج المعنى. لو ظهرت الحقول في عرض قائمة مولد بدون نص مساعدة، هل سيظل الهدف واضحًا؟
- الكلمات المبهمة أزيلت أو صارت محددة. استبدل أسماء الدرج مثل
data،value،type، أوinfoبأسماء ملموسة مثلstatus،source،category،notes، أوexternal_reference.
إذا كنت تستخدم AppMaster’s Data Designer لتوليد عروض شبيهة بلوحة إدارة من المخطط، فهذه القائمة عملية فورًا: الأسماء الواضحة تصبح أعمدة وفلاتر واضحة، وتقضي وقتًا أقل في تصحيح التسميات بعد أن يبدأ المستخدمون بالعمل في النظام.
الخطوات التالية: اجعل التسمية عادة (وحافظ على تناسق الشاشات)
التسمية الجيدة ليست تنظيفًا لمرة واحدة. هي روتين صغير يحافظ على قابلية قراءة واجهة الإدارة مع نمو المخطط.
ابدأ بوحدة موجودة وطبّق القواعد فقط على الجدول التالي الذي تضيفه. هذا يتجنب إعادة كتابة ضخمة ويعطيك مكانًا حقيقيًا للتدريب. إذا كانت الميزة التالية تضيف “returns” إلى نظام الطلبات، سمِّ الجدول، المفاتيح الخارجية، والحالات باستخدام أنماطك من اليوم الأول، ثم أعد استخدام النهج للميزة التالية.
احتفظ بدليل تسمية من صفحة واحدة بجانب مكان عملك على المخطط. اجعله قصيرًا: كيف تسمي الجداول، المفاتيح الأساسية، المفاتيح الخارجية، الطوابع الزمنية، وenums الحالة. الهدف قرارات سريعة، لا نقاشات طويلة.
إذا بنيت باستخدام AppMaster، من المفيد ضبط هذه الأنماط في Data Designer قبل لمس شاشات واجهة المستخدم. عند إعادة تسمية جداول أو حقول، أعد توليد التطبيق حتى تبقى الشاشات، الـ APIs، والمنطق متوافقة بدل الانحراف.
خطوة مراجعة خفيفة قبل كل إصدار عادةً ما تكون كافية:
- هل أسماء الجداول والحقول تقرأ جيدًا كعناصر قائمة، رؤوس أعمدة، وفلاتر؟
- هل الحالات والقيم المحددة واضحة بدون شرح إضافي؟
- هل العلاقات والمفاتيح الخارجية تشرح نفسها (لا اختصارات غامضة)؟
- هل النماذج المماثلة مسماة بتناسق (نفس الكلمات، نفس الترتيب) ؟
مع مرور الوقت، الفوز الحقيقي هو التناسق. عندما يتبع كل نموذج جديد نفس القواعد، ستبدأ لوحات الإدارة في الظهور مصممة حتى وهي مولّدة، لأن التسميات والقوائم تقرأ كمنتج متماسك.
الأسئلة الشائعة
استخدم أسماء تقرأ كـ ما هو السجل، لا ما يفعله. جدول اسمه ticket أو invoice سيتحول إلى بند قائمة واضح، بينما اسم مثل processing يصبح مربكًا بسرعة عندما يتغير سير العمل.
اختر نمطًا واحدًا واستمر به في كل مكان. بالنسبة لمعظم قواعد البيانات، snake_case أسهل للقراءة ويساعد على أن تبدو التسميات والفلاتر المولّدة متسقة.
بهِ الافتراضي، استخدم كلمات كاملة وواضحة لأنها تصبح رؤوس أعمدة وعلامات فلترة. الاختصارات مثل acct أو addr1 عادةً ما تبطئ المشغلين حتى لو كان المطورون يفهمونها.
اختر نهجًا واحدًا وابقَ عليه: إما صيغة مفردة (ticket) أو جمع (tickets). الهدف أن لا تتغير الأساليب عبر الوحدات حتى لا تتبدل عناوين التنقل والصفحات.
احتفظ بقاعدة بسيطة ومملة: المفتاح الأولي لكل جدول اسمه id، والمفاتيح الخارجية بصيغة something_id. هذا يجعل العلاقات متوقعة ويساعد النماذج والحقول المرجعية المولّدة على الظهور متسقة.
سمّ جداول الربط النقية باسم الكيانين مع نمط وترتيب ثابتين، مثل user_role أو product_tag. إذا كان للعلاقة حقول إضافية ومعنى خاص، فسمّها باسم كيان حقيقي مثل membership أو assignment ليقرأ الواجهة الطبيعية.
استخدم لاحقات متوقعة تطابق نوع النية والبيانات، مثل _at للطوابع الزمنية و_count للعدادات. للحقائق البوليانية استخدم is_ وhas_ حتى تبدو مربعات الاختيار جملًا مفهومة بسرعة في الشاشات المولدة.
فضل حقل حالة واحد واضح لدورة حياة السجل، مثل ticket_status أو invoice_status، بدلًا من عدة أعلام بوليانية متداخلة. احتفظ بقيم مخزنة مستقرة وواضحة حتى تتمكن من تغيير نص العرض لاحقًا بدون ترحيل البيانات.
لا تعيد استخدام أسماء عامة مثل owner_id أو type عندما تعني أشياء مختلفة. استخدم أسماء دور محددة مثل created_by_user_id أو approved_by_user_id أو payment_method حتى تشرح الشاشات والفلاتر نفسها.
أعد التسمية مبكرًا قبل أن تعتمد الشاشات والفلاتر والتقارير على الصياغة القديمة. في AppMaster، حدّث الأسماء في Data Designer وأعد التوليد حتى تبقى الواجهة وواجهة البرمجة متزامنتين بدل الانحراف.


