سؤال

لدي بعض النماذج التي ليست في تنسيق CakePhp الافتراضي

المستخدم (معرف ، الاسم ....)

1 Harsha ...
2 John ....

الأطباق (معرف ، الاسم ، السعر ...)

1 "Cheese Pizza" 6
2 "Zinger Burger" 3

المطاعم (معرف ، الاسم ، .....)

1 "KFC" ...
2 "Pizza Hut" ...

الوحدة (المعرف ، الاسم) قيم (المستخدم ، الأطباق ، المطاعم)

1 "Users"
2 "Dishes"
3 "Restaurant"

العناصر (المعرف ، الوحدة النمطية ، item_id)

1 1 1 (refers to User Harsha)

2 3 2 (refers to Pizza hut)

3 2 2 (refers to Zinger Burger)

4 1 2 (refers to User John)

حيث يشير item_id إلى معرف المستخدمين أو الأطباق أو الاستراحة اعتمادًا على module_id


المراجعات (ID ، Parent_ID ، مراجعة ، الوقت ، item_id ، Compleer_id)

1 0 "Best Burger in the world" "time" 3 1 (refers to Harsha reviewing Zinger Burger)

2 1 "Yes i love Zingers tooo" time 3 2 ( refers to John replying to Harsha's Review)

أنا أفسد قليلاً عن كيفية وضع العلاقات في CakePhp

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

المحلول

في الكتاب في هذه الصفحة: http://book.cakephp.org/view/1039/associations-linking-models-together ستجد دليلًا للمفاتيح المحتملة التي يمكنك تعيينها على العلاقة ، على سبيل المثال

ForeignKey: اسم المفتاح الخارجي الموجود في النموذج الآخر. هذا مفيد بشكل خاص إذا كنت بحاجة إلى تحديد علاقات هاسون متعددة. القيمة الافتراضية لهذا المفتاح هي الاسم المفرد الناتج عن النموذج الحالي ، الملاحق بـ "_id". في المثال أعلاه ، قد يكون افتراضيًا إلى "user_id".

بافتراض أن المراجعات والعناصر هي الأطفال في جمعياتهم ، لكلا طرفي العلاقات ، فأنت تقوم بتعيين ForeignKey على أنه "item_id".

شيء مثل:

dishes:
class Dish extends AppModel {
    var $name = 'Dish'; 
    var $hasMany = array(
        'Item' => array(
            'className'     => 'Item',
            'foreignKey'    => 'item_id',
            ...
items:
class Item extends AppModel {
    var $name = 'Item'; 
    var $belongsTo = array(
        'Dish' => array(
            'className'     => 'Dish',
            'foreignKey'    => 'item_id',
            ...
            ),

        'Restaurant' => array(
            'className'     => 'Restaurant',
            'foreignKey'    => 'item_id',
            ...

من الصعب أن تكون أكثر دقة ، لكنك لم تقدم أي Datamodel. للتعامل مع اختيار النموذج عبر الوحدة النمطية ، ستحتاج إلى كتابة بعض التعليمات البرمجية على نموذج في مكان ما ، أي واحد (أعوام) يعتمد على كيفية الوصول إلى البيانات.

ومع ذلك ، يبدو لي أنه وقت جيد لإعادة هيكلة قاعدة البيانات!

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