এক থেকে বহু এবং একের মধ্যে সম্পর্কের মধ্যে আসল পার্থক্য কী? এটি কেবল বিপরীত হয়, ধরনের?
আমি এই বিষয়টি ব্যতীত অন্য কোনও বিষয় সম্পর্কে 'ভাল-এবং-সহজেই বোঝার' টিউটোরিয়ালটি পাই না: প্রারম্ভিকদের জন্য এসকিউএল: পার্ট 3 - ডাটাবেস সম্পর্ক
এক থেকে বহু এবং একের মধ্যে সম্পর্কের মধ্যে আসল পার্থক্য কী? এটি কেবল বিপরীত হয়, ধরনের?
আমি এই বিষয়টি ব্যতীত অন্য কোনও বিষয় সম্পর্কে 'ভাল-এবং-সহজেই বোঝার' টিউটোরিয়ালটি পাই না: প্রারম্ভিকদের জন্য এসকিউএল: পার্ট 3 - ডাটাবেস সম্পর্ক
উত্তর:
হ্যাঁ, এটি তদ্বিপরীত। সত্তাটি সম্পর্কের কোন দিকে রয়েছে তা নির্ভর করে।
উদাহরণস্বরূপ, যদি একটি বিভাগ তত্কালীন বেশ কয়েকটি কর্মচারীর জন্য নিয়োগ করতে পারে তবে বিভাগ থেকে কর্মচারী হ'ল একের সাথে একাধিক সম্পর্কের (1 বিভাগে অনেক কর্মচারী নিয়োগ করা হয়), অন্যদিকে কর্মচারী থেকে বিভাগের সম্পর্ক অনেকের মধ্যে এক থেকে একাধিক কর্মচারী এক বিভাগেই কাজ করেন work
সম্পর্কের ধরণের উপর আরও তথ্য :
ডাটাবেস টার্মিনোলজি সম্পর্কে এই পৃষ্ঠা থেকে
সারণীর মধ্যে সর্বাধিক সম্পর্ক এক থেকে অনেকের।
উদাহরণ:
- একটি অঞ্চল অনেক পাঠকের আবাস হতে পারে।
- এক পাঠকের অনেক সাবস্ক্রিপশন থাকতে পারে।
- একটি পত্রিকায় অনেক সাবস্ক্রিপশন থাকতে পারে।
অনেকের সাথে এক সম্পর্কের ক্ষেত্রে এক থেকে অনেকের মতোই, তবে ভিন্ন দৃষ্টিকোণ থেকে।
- অনেক পাঠক এক জায়গায় থাকেন।
- অনেক সাবস্ক্রিপশন এক এবং একই পাঠকের হতে পারে।
- অনেক সাবস্ক্রিপশন এক এবং একই সংবাদপত্রের জন্য।
এক থেকে বহু এবং একের মধ্যে সম্পর্কের মধ্যে আসল পার্থক্য কী?
এই শর্তাদিগুলির মধ্যে ধারণাগত পার্থক্য রয়েছে যা আপনাকে ডেটা ভিজ্যুয়ালাইজ করতে এবং জেনারেটেড স্কিমায় সম্ভাব্য পার্থক্য যা সম্পূর্ণ বোঝা উচিত। বেশিরভাগ ক্ষেত্রে পার্থক্য যদিও দৃষ্টিভঙ্গির একটি।
একটি একের সাথে অধিকের সম্পর্ক, স্থানীয় টেবিল এক সারি যে অন্য টেবিলে অনেক সারি সঙ্গে যুক্ত করা হতে পারে। প্রারম্ভিকদের জন্য এসকিউএল থেকে উদাহরণে , এক Customer
অনেকগুলি Order
এস এর সাথে যুক্ত হতে পারে ।
বিপরীতে বহু-টু-ওয়ান সম্পর্কের ক্ষেত্রে, স্থানীয় টেবিলটিতে অনেকগুলি সারি থাকতে পারে যা অন্য সারণীতে এক সারির সাথে যুক্ত। আমাদের উদাহরণে, অনেকগুলি Order
একটির সাথে যুক্ত হতে পারে Customer
। মানসিক উপস্থাপনের জন্য এই ধারণাগত পার্থক্য গুরুত্বপূর্ণ।
তদ্ব্যতীত, সম্পর্কের পক্ষে সহায়তা করে এমন স্কিমাটি টেবিলে Customer
এবং Order
সারণীতে আলাদাভাবে উপস্থাপিত হতে পারে । উদাহরণস্বরূপ, যদি গ্রাহকের কলাম থাকে id
এবং name
:
id,name
1,Bill Smith
2,Jim Kenshaw
তারপর একটি Order
একটি সঙ্গে যুক্ত করা হবে Customer
, অনেক SQL এর বাস্তবায়নের যোগ Order
টেবিল একটি কলামে সঞ্চয় করে id
যুক্ত এর Customer
(এই স্কিমা মধ্যে customer_id
:
id,date,amount,customer_id
10,20160620,12.34,1
11,20160620,7.58,1
12,20160621,158.01,2
উপরের ডাটা সারিগুলিতে, আমরা যদি customer_id
আইডি কলামটি দেখি, আমরা দেখতে পাই যে Bill Smith
(গ্রাহক-আইডি # 1) এর সাথে 2 টি অর্ডার যুক্ত রয়েছে: একটি 12.34 ডলার এবং একটি $ 7.58 এর জন্য। Jim Kenshaw
(গ্রাহক-আইডি # 2) এর 158.01 ডলারে কেবল 1 টি অর্ডার রয়েছে।
যেটি উপলব্ধি করা গুরুত্বপূর্ণ তা হ'ল সাধারণত এক-একাধিক সম্পর্কের টেবিলটিতে আসলে কোনও কলাম যুক্ত হয় না যা "এক"। এর Customer
সাথে কোনও অতিরিক্ত কলাম নেই যা সম্পর্কের বর্ণনা দেয় Order
। বস্তুত Customer
শক্তি এছাড়াও সঙ্গে একটি একের সাথে অধিকের সম্পর্ক আছে ShippingAddress
এবং SalesCall
টেবিল এবং এখনো কোন অতিরিক্ত কলাম যোগ করা আছে Customer
টেবিল।
তবে, বহু-এক-সম্পর্কের বর্ণনা দেওয়ার জন্য, প্রায়শই id
"অনেকগুলি" টেবিলের সাথে একটি কলাম যুক্ত করা হয় যা "এক" টেবিলের জন্য একটি বিদেশী-কী - এই ক্ষেত্রে একটি customer_id
কলাম যুক্ত করা হয় Order
। সম্পর্কিত অর্ডার # 10 থেকে for 12.34 ডলারে Bill Smith
, আমরা customer_id
কলামটির Bill Smith
আইডি 1 তে নির্ধারণ করি ।
যাইহোক, সেখানে আরও একটি সারণী থাকা Customer
এবং Order
সম্পর্কের বর্ণনা দেওয়াও সম্ভব , যাতে সারণীতে কোনও অতিরিক্ত ক্ষেত্র যুক্ত করার প্রয়োজন হয় না Order
। সারণীতে একটি customer_id
ক্ষেত্র যুক্ত করার পরিবর্তে Order
, এমন Customer_Order
টেবিল থাকতে পারে যা উভয় Customer
এবং এর জন্য কী যুক্ত করে Order
।
customer_id,order_id
1,10
1,11
2,12
এই ক্ষেত্রে, ওয়ান-টু-ওয়ান- ও -এক-এক সমস্ত ধারণাগত, কারণ তাদের মধ্যে কোনও স্কিমার পরিবর্তন নেই। আপনার স্কিমা এবং এসকিউএল বাস্তবায়নের উপর কোন প্রক্রিয়া নির্ভর করে।
আশাকরি এটা সাহায্য করবে.
javax.persistence.OneToMany
আলাদা আলাদাভাবে ManyToOne
। আপনি কি বলছেন যে তারা সমার্থক বা ঠিক এটি বাস্তবায়নের উপর নির্ভর করে? আমার উত্তর কি ভুল?
এখানে কোন পার্থক্য নেই. আপনি যেভাবে সম্পর্কটিকে বলছেন তা কেবল ভাষা এবং পছন্দ বিষয় মাত্র।
আপনার প্রথম প্রশ্নের উত্তর হ'ল: উভয়ই একই রকম,
আপনার দ্বিতীয় প্রশ্নের উত্তরটি হ'ল: এক থেকে বহু -> একজন পুরুষ (পুরুষ টেবিল) এর একাধিক স্ত্রী থাকতে পারে (মহিলা টেবিল) একাধিক থেকে এক -> একাধিক মহিলা এক পুরুষকে বিবাহ করেছিলেন have
এখন আপনি যদি এই সম্পর্কটি দুটি টেবিল MAN এবং WOMEN এর সাথে সম্পর্কিত করতে চান তবে একটি পুরুষ টেবিল সারিতে WOMEN টেবিলের সারিগুলির সাথে অনেকগুলি সম্পর্ক থাকতে পারে। আশা করি এটা পরিষ্কার হয়ে যাবে
এসকিউএল-তে কেবল এক ধরণের সম্পর্ক থাকে, একে রেফারেন্স বলা হয়। (আপনার সামনের প্রান্তটি সহায়ক বা বিভ্রান্তিকর কাজগুলি করতে পারে [যেমন উত্তরগুলির কয়েকটি হিসাবে] তবে এটি একটি ভিন্ন গল্প))
এসকিউএল পদে, বারের উল্লেখ রেফারেন্স
অন্যভাবে নয় oo
CREATE TABLE Foo (
Foo CHAR(10) NOT NULL, -- primary key
Name CHAR(30) NOT NULL
CONSTRAINT PK -- constraint name
PRIMARY KEY (Foo) -- pk
)
CREATE TABLE Bar (
Bar CHAR(10) NOT NULL, -- primary key
Foo CHAR(10) NOT NULL, -- foreign key to Foo
Name CHAR(30) NOT NULL
CONSTRAINT PK -- constraint name
PRIMARY KEY (Bar), -- pk
CONSTRAINT Foo_HasMany_Bars -- constraint name
FOREIGN KEY (Foo) -- fk in (this) referencing table
REFERENCES Foo(Foo) -- pk in referenced table
)
যেহেতু Foo.Foo
একটি প্রাথমিক কী, এটি অনন্য, যে কোনও প্রদত্ত মানের জন্য কেবল একটি সারি রয়েছেFoo
Bar.Foo
একটি রেফারেন্স, একটি বিদেশী কী এবং এটিতে কোনও অনন্য সূচক নেই, যে কোনও প্রদত্ত মানের জন্য অনেকগুলি সারি থাকতে পারেFoo
Foo::Bar
এক-থেকে-বহু Bar::Foo
বহু-এক-এক
Bar
সারির জন্য, কেবলমাত্র একটি Foo
সারি রয়েছে যা এটি উল্লেখ করেএকের মধ্যে অনেকের সাথে অনেকের মধ্যে একটি সম্পর্কের মধ্যে আসল পার্থক্য কী?
কেবল একটি সম্পর্ক আছে, তাই কোনও পার্থক্য নেই। উপলব্ধি (একটি "প্রান্ত" বা অন্য "প্রান্ত" থেকে) বা পিছনের দিকে পড়া, সম্পর্ক পরিবর্তন করে না।
কার্ডিনালিটি ডেটা মডেলটিতে প্রথমে ঘোষণা করা হয় যার অর্থ লজিকাল এবং ফিজিক্যাল (অভিপ্রায়) এবং তারপরে বাস্তবায়নে (উদ্দেশ্যটি উপলব্ধি করা)।
এক থেকে অনেকগুলি
এসকিউএল -তে (উপরের) সমস্ত প্রয়োজনীয়।
এক থেকে একের মধ্যে অনেককে রেফারেন্সিং সারণীতে এটি প্রয়োগ করতে আপনার
একটি লেনদেনের প্রয়োজন ।
এক থেকে শূন্য থেকে
আপনার প্রয়োজন Bar
:
CONSTRAINT AK -- constraint name
UNIQUE (Foo) -- unique column, which makes it an Alternate Key
একের পর এক আপনার রেফারেন্সিং সারণীতে এটি প্রয়োগ করতে
একটি লেনদেনের প্রয়োজন ।
অনেকের কাছে অনেকগুলি
শারীরিক স্তরে এ জাতীয় কোনও জিনিস নেই (প্রত্যাহার করুন, এসকিউএলে কেবল এক ধরণের সম্পর্ক রয়েছে)।
মডেলিং অনুশীলনের সময় প্রাথমিক যৌক্তিক স্তরে এ জাতীয় সম্পর্ক আঁকানো সুবিধাজনক । মডেলটি বাস্তবায়নের কাছাকাছি আসার আগে, কেবলমাত্র বিদ্যমান জিনিসগুলি ব্যবহার করে এটি আরও উন্নত হতে পারে। এমন একটি সম্পর্ক একটি সমিতি ছক বাস্তবায়নের মাধ্যমে সমাধান করা হয়।
এক-থেকে-একাধিক এবং একাধিক টু-ওয়ান বহুগুণে সমান তবে দিক (যেমন দিকনির্দেশ) নয়।
সত্তা শ্রেণি এবং সারণীর মধ্যে সম্পর্কের মধ্যে অ্যাসোসিয়েশনগুলির ম্যাপিং । সম্পর্কের দুটি বিভাগ রয়েছে:
ব্যবহারিক পার্থক্য নেই। কেবল সেই সম্পর্কটি ব্যবহার করুন যা দেবেন্দ্রর চিত্রিত হিসাবে আপনার সমস্যাটিকে দেখার উপযোগী করে তুলেছে।
--- অনেকের কাছে --- এই 3 সন্তানের একক পিতা-মাতা থাকতে পারে।
দুটোই একই রকম। এটি প্রয়োজন হতে পারে ব্যবহার করা যেতে পারে। যদি আপনি কোনও নির্দিষ্ট পিতামাতার জন্য বাচ্চাদের সন্ধান করতে চান তবে আপনি ওয়ান-টু-ম্যানের সাথে যেতে পারেন। অন্যথায়, যমজ সন্তানের জন্য বাবা-মাকে খুঁজে পেতে চান, আপনি একাধিক-ও-ও-তে যেতে পারেন। অনুরূপভাবে ....,
এক-একের মধ্যে অনেকের প্যারেন্ট ক্লাসে এন সংখ্যক শিশু থাকে তাই এটি সংগ্রহের ম্যাপিং।
একাধিক-টু-ও- এর মধ্যে একাধিক শিশু রয়েছে যার মধ্যে একটি প্যারেন্ট থাকে তাই এটি একটি অবজেক্ট ম্যাপিং