मैंने डॉक्टिन ओआरएम लाइब्रेरी के साथ खेलना शुरू किया, और मैं टेबल के बीच सभी संगठनों के बारे में सीख रहा हूं।सिद्धांत - OneToOne यूनिडायरेक्शनल बनाम OneToOne बिडरेक्शनल
तो मैं यूनिडायरेक्शनल और बिडरेक्शनल रिलेशनशिप में अंतर के साथ फंस गया।
जैसा कि मुझे मिलता है, यूनिडायरेक्शनल संबंध में केवल एक तरफ प्राथमिक कुंजी होती है, और वह पक्ष सही पक्ष का मालिक है? और बिडरेक्शनल संबंध दोनों टेबलों में प्राथमिक कुंजी है और इसलिए आप दोनों तरफ से संबंध रख सकते हैं, और दोनों तरफ बाधाएं सेट कर सकते हैं।
अब, मैं संबंधों के बारे में सिद्धांत दस्तावेज के माध्यम से पढ़ रहा हूं और वहां आपके पास है: Unidirectional और Bidirectional संघ।
लेकिन वे एक ही एसक्यूएल, और समान प्राथमिक कुंजी और बाधाओं के साथ एक ही टेबल का उत्पादन करते हैं। इसलिए मैं उन दोनों में वास्तव में कोई अंतर नहीं देखता हूं। और दोनों उदाहरणों में एक तरफ प्राथमिक कुंजी है।
जैसा कि मुझे यह सच है कि बिडरेक्शनल संबंध में अन्य तालिकाओं को इंगित करने वाली दोनों सारणी में प्राथमिक कुंजी होनी चाहिए? और सिद्धांत दस्तावेज पर दिए गए उदाहरण के साथ जो मामला नहीं है। दोनों उदाहरण एक ही परिणाम देते हैं और वही हैं।
तो मैंने जो किया, यह है, मान लीजिए कि मेरे पास उपयोगकर्ता और कार्ड इकाई है, और एक वनोन बिडरेक्शनल होने का संबंध चाहते हैं।
/**
* @Entity
* @Table(name="users")
*/
class User
{
/**
* @Id
* @GeneratedValue
* @Column(type="bigint")
*/
protected $id;
/**
* @OneToOne(targetEntity="Card", mappedBy="User")
* @JoinColumn(name="card_id", referencedColumnName="id")
*/
protected $card;
/**
* @Column(name="user_name", type="string")
*/
protected $userName;
/**
* @Column(name="user_pass", type="string")
*/
protected $userPass;
}
/**
* @Entity
* @Table(name="cards")
*/
class Card
{
/**
* @Id
* @GeneratedValue
* @Column(type="bigint")
*/
protected $id;
/**
* @OneToOne(targetEntity="User", inversedBy="Card")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
/**
* @Column(name="post_title", type="string")
*/
protected $cardType;
}
यहां अंतर यह है कि मैंने दोनों वस्तुओं/संस्थाओं में @ जॉइन कॉलम लिखा है। और सिद्धांत उदाहरण में केवल एक ही है। अब मुझे लगता है कि बिडरेक्शनल संबंध है जो मुझे लगता है। अगर मैं ईईआर आरेख को देखता हूं, तो मैं उपयोगकर्ता से कार्ड पर इंगित करने वाली एक पंक्ति देख सकता हूं, और दूसरा कार्ड से उपयोगकर्ता तक।
तो क्या मुझे मूल रूप से यह अधिकार मिला? क्या सिद्धांत दस्तावेज गलत है? : डी ईआईआर आरेख में बिडरेक्शनल वनटोन संबंध कैसे दिखता है?
धन्यवाद!
कोई भी? कोई नहीं? : डी – otporan