MySQL नहीं जानता है, न ही उसे यह जानने की जरूरत है कि कोई संबंध 1-1 है, या 1-कई है। 1-कई अलग करें।
अंतर उस तर्क में है जो रिश्तों को नियंत्रित करता है, जो आपके द्वारा लिखे गए कोड में है।
एक 1-1 संबंध बनाए रखा जाता है जिसमें टेबल समान प्राथमिक कुंजी (पीके) साझा करते हैं।
के साथ द्वितीयक तालिका यह घोषित करती है कि PK अन्य तालिकाओं PK की ओर इशारा करते हुए एक विदेशी कुंजी है।
Table chinese_mother (
id integer primary key,
name....
Table chinese_child (
id integer primary key,
name ....
....,
foreign key (id) references chinese_mother.id
रिश्ते की दिशा 1 -> many
बनाम many <- 1
लिंक फ़ील्ड के स्थान से निर्धारित होता है।
आमतौर पर प्रत्येक तालिका में एक अद्वितीय id
होता है और लिंक फ़ील्ड को tablename_id
. कहा जाता है .
जिस तालिका में लिंक फ़ील्ड है वह many
. है रिश्ते की तरफ, दूसरी टेबल 1
. पर है पक्ष।
Table user
id: primary key
name......
.....
Table location
id: primary key
user_id foreign key references (user.id)
x
y
.......
लिंक फ़ील्ड को location
. में रखकर तालिका, आप चीजों को बल देते हैं ताकि किसी स्थान में केवल 1 उपयोगकर्ता हो। हालांकि एक उपयोगकर्ता के कई स्थान हो सकते हैं।