একটি দৃশ্যের নিজস্ব বিদেশী কী বাধা দরকার?


10

দাবি অস্বীকার: আমি একজন প্রোগ্রামার, ডিবিএ নই, তাই আমার সাথে সহ্য করুন ...

আমার একটি দৃষ্টিভঙ্গি রয়েছে যা আমি কেবল 2 টি সত্তাকে এক সাথে মানচিত্র করতে ব্যবহার করি। এটি পেতে আমাকে কয়েকটি আলাদা টেবিলের মধ্যে একটি জয়েন্ট করতে হবে:

CREATE OR REPLACE VIEW V_SCREENING_GROUP_SITES AS (
SELECT SG.SCREENING_GROUP_ID, V.SITE_ID
FROM SCREENING_GROUP SG, VISIT V, VISIT_DATE VD
WHERE VD.VISIT_ID = V.VISIT_ID 
AND V.SCREENING_GROUP_ID = SG.SCREENING_GROUP_ID);

উপরে কেবল প্রসঙ্গে, সে সম্পর্কে খুব বেশি চিন্তা করবেন না। আমার যা জানা দরকার তা হল কীভাবে আমার নতুন V_SCREENING_GROUP_SITES ভিউতে (SCREENING_GROUP_ID এবং SITE_ID) SCREENING_GROUP এবং সাইট টেবিলে বিদেশী কী হিসাবে আচরণ করা যায়। অথবা এটা এমনকি কোন ব্যাপার?

এটি যদি কোনও টেবিল হত তবে আমি করতাম:

ALTER TABLE V_SCREENING_GROUP_SITES
ADD CONSTRAINT FK_SCREENING_GROUP_ID
FOREIGN KEY (SCREENING_GROUP_ID)
REFERENCES SCREENING_GROUP.SCREENING_GROUP_ID;
...

তবে যেহেতু এটি এমন একটি দৃশ্য যা স্পষ্টতই কাজ করে না। আমি কোনও বিকল্প চিত্র বাক্য গঠন খুঁজে পাইনি যা এফকে সেট করার জন্য কাজ করে। আমার কি করা উচিৎ?

(এটি একটি মাইএসকিউএল ডেটাবেস)

উত্তর:


12

একটি ভিউ একটি যৌক্তিক টেবিল যা এক বা একাধিক দৈহিক টেবিলের উপর ভিত্তি করে। অন্তর্নিহিত টেবিলগুলিতে যদি বিদেশী কী সম্পর্ক থাকে তবে সেগুলি দৃশ্যে প্রকাশিত হবে। ভিউগুলি সম্পূর্ণরূপে সেগুলি থেকে প্রাপ্ত টেবিলের উপর নির্ভরশীল, তাই তাদের সাথে বিদেশী কী যুক্ত করার চেষ্টা করা সম্ভব নয়।


1
দুর্দান্ত, সুতরাং এর পরে আমার আর কিছু করার দরকার নেই (অন্তর্নিহিত সারণীতে এফকে সীমাবদ্ধ রয়েছে)। উত্তরের জন্য ধন্যবাদ.
ট্রয়

1
আমি মনে করি এটি তৈরি করার বিষয়। অন্তর্নিহিত সারণীগুলির এফকে থাকা যতক্ষণ না আপনার ভিউতে এফকে দরকার হবে না।
ডেরেক ডাউনি

2
@ ডিস্টেস্ট - চেক, অনন্য এবং বিদেশী কী সীমাবদ্ধতার সাথে কোনও দৃশ্যে (বিশেষত যদি ভিউটি সমষ্টিগতভাবে ডেটা সমন্বিত করে) সীমাবদ্ধতাগুলি প্রয়োগ করতে সক্ষম হতে খুব দরকারী হতে পারে। এটি কেবল তখনই ঘটে থাকে যে কোনও বর্তমান আরডিবিএমএস আপনাকে এগুলি তৈরি করার অনুমতি দিলেও তা দর্শনে বাধা প্রয়োগ করে না।
জ্যাক বলছেন topanswers.xyz

ঠিক আছে জ্যাকডুগলাস! আসলে আমি এখানে এসে মাইএসকিউএল যেমন কোনও বৈশিষ্ট্য সমর্থন করে কিনা তা চেষ্টা করার চেষ্টা করে এসেছি।
স্টিজন ডি উইট

3

শব্দের কঠোর অর্থে, আপনি কোনও দর্শনে বিদেশী কী সেট করতে পারবেন না। এখানে কেন:

ইনোডিবি হ'ল মাইএসকিউএল এর একমাত্র বিল্ট-ইন স্টোরেজ ইঞ্জিন যা বিদেশী কীগুলি বৈশিষ্ট্যযুক্ত। কোন InnoDB টেবিলে নিবন্ধিত করা হবে information_schema.tables ইঞ্জিন = 'InnoDB' দিয়ে।

তথ্য_সেমিটা.টেবলে নিবন্ধভুক্ত হওয়ার সময় দেখা হয়েছে, একটি ন্যূনুএলএল স্টোরেজ ইঞ্জিন রয়েছে। মাইএসকিউএলে কোনও টেবিলে বিদেশী কী আছে এমন কোনও ব্যবস্থা নেই যার একটি অপরিজ্ঞাত স্টোরেজ ইঞ্জিন রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.