سؤال

أعرف أن اتفاقيات التسمية للجداول المستخدمة من قبل الإضافات تبدأ عموما باسم البرنامج المساعد ثم النموذج محدد. على سبيل المثال، دعني أقول إنني مصاب بمستوى مسمى يسمى الاستطلاع، مع نموذج يسمى أيضا البقول ونموذج آخر يسمى POLLTAG، ثم ستكون أسماء الجدول الناتجة Poll_Polls و Poll_Tags. سيكون لديهم أيضا علاقة HABTM إذن ما هي الاتفاقية لاسم الجدول هذا؟ أعتقد أنه سيؤدي إلى poll_poll_polls_poll_tags، على الرغم من أنه أمر زائد قليلا، فمن المنطقي منذ أن تمثل أول استطلاع للرأي اسم البرنامج المساعد، في حين يتعلق بالقرو Soll_Polls و Poll_Tags بالنماذج.

كما تغير أي اتفاقيات تسمية للتسمية إلى الإضافات في 1.3؟ هل ذكر أعلاه صحيح؟

هل كانت مفيدة؟

المحلول

لست متأكدا من الكعكة 1.3 (أنا لا أستخدمها بعد)، ولكن هذا إذا كنت على حق، فهذا يبدو وكأنه حالة مقبولة تماما من الاتفاقية العاجلة وتحديد المفاتيح القابلة للتقابل، والأجنبي في العلاقات النموذجية وربما في البرنامج المساعد.

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

نصائح أخرى

في الواقع ليس بعد اتفاقية "الجداول المستخدمة من قبل الإضافات تبدأ عموما باسم البرنامج المساعد ثم النموذج محدد."

المكان الوحيد الذي يتم تقديمه هو في مثال في الكتاب, ، والتي تقول فعلا: "من المستحسن أن تسمي وحدات تحكم البرنامج المساعد الخاص بك أمر فريد من نوعها نسبيا لتجنب تعارضات مساحة الاسم مع التطبيقات الأم ... قد ترغب في أن تكون مبدعا بأسماء تحكم، أو قم بإعداد اسم البرنامج المساعد إلى ClassName "

يجب أن تتبع أسماء الجدول / النموذج / وحدة التحكم / عرض اتفاقيات تسمية CakePhP العادي، واتخاذ احتياطات معقولة لتجنب اشتباك مساحة الاسم. لذلك سيكون من الجيد تماما أن يكون لديك جدول "foo_orders" لنموذج "foo_order" في شريط المساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top