मेरे ऐप में एक लेनदेन तालिका है: विक्रेता_आईडी, खरीदार_आईडी और संपत्ति_आईडी।

विक्रेता_आईडी और खरीदार_आईडी आईडी उपयोगकर्ता तालिका को इंगित करने वाले हैं। सम्मेलन से चिपके रहने और स्वचालित जुड़ाव रखने के लिए दोनों को "user_id" कहा जाना चाहिए (जो निश्चित रूप से असंभव है)

केकपीएचपी 3.x में ऐसे संघ बनाने का सही तरीका क्या है?

मेरा अनुमान है कि मुझे विशेष एसोसिएशन टेबल बनाना चाहिए: विक्रेता (आईडी, उपयोगकर्ता_आईडी) खरीदार (आईडी, उपयोगकर्ता_आईडी)

और फिर संघ उन तालिकाओं को गर्त में ले जाएगा: लेन-देन => विक्रेता, खरीदार => उपयोगकर्ता

क्या वो सही है? क्या यह काम करेगा? क्या कोई बेहतर तरीका है?

0
Zbigniew Ledwoń 24 जून 2019, 23:30

1 उत्तर

सबसे बढ़िया उत्तर

आप नीचे की तरह विभिन्न उपनामों और विदेशी कुंजियों के साथ संबंध को परिभाषित कर सकते हैं।

आपके लेनदेन मॉडल/तालिका में।

$this->belongsTo('Sellers' , [ 
    'foreignKey' => 'seller_id',  
    'className' => 'Users'   
]); 

$this->belongsTo('Buyers' , [ 
    'foreignKey' => 'buyer_id',  
    'className' => 'Users'   
]);  

यदि आप भी उपयोगकर्ता मॉडल में संबंध को परिभाषित करना चाहते हैं, तो आप इसे इस तरह परिभाषित कर सकते हैं।

उपयोगकर्ता मॉडल/तालिका में

$this->hasMany('BuyerTransactions' , [ 
    'foreignKey' => 'buyer_id',  
    'className' => 'Transactions'   
]); 


$this->hasMany('SellerTransactions' , [ 
        'foreignKey' => 'seller_id',  
        'className' => 'Transactions'   
    ]);
2
Rakesh 25 जून 2019, 03:51