বড় অ্যাপ্লিকেশনগুলির জন্য একই ডাটাবেসে আলাদা স্কিমায় টেবিলগুলিতে বিদেশী কীগুলি তৈরি করা কি খারাপ ধারণা?


13

আমি ডেডিকেটেড সার্ভারে একটি বড় pl / sQL ওয়েব-ভিত্তিক অ্যাপ্লিকেশন স্থানান্তর করার কাজ করছি। এই অ্যাপ্লিকেশনটি প্রোগ্রাম কোডের 70 টি প্যাকেজ সহ একটি স্কিমাতে অবস্থিত। এই অ্যাপ্লিকেশনটি প্রায় বিভিন্ন সময়ে প্রায় 15 জনকে তৈরি করা হয়েছিল। এবং বিভিন্ন স্কিমে রেফারেন্স টেবিলগুলিতে বিদেশী কীগুলি তৈরি করা আমাদের কাছে স্বাভাবিক অনুশীলন ছিল কারণ এটি সত্যই নিশ্চিত এবং এটি ডেটাবেসকে খুব পরিষ্কার রাখে, কারণ আমাদের একই রেফারেন্স টেবিলগুলি আলাদা স্কিমায় রাখার দরকার নেই।

তবে যাইহোক আমার ডিবিএ (যিনি ডিবি দিয়ে নতুন উদাহরণ তৈরি করেছিলেন এবং সোলারিস জোনের অভ্যন্তরে আমার অ্যাপ্লিকেশনটি অনুলিপি করেছেন) আজ খুব কঠোর বলেছিলেন, "বিভিন্ন স্কিমার বিদেশী কীগুলি খারাপ এবং আপনার এটি ধ্বংস করা দরকার!"! তিনি তার দৃষ্টিভঙ্গি ব্যাখ্যা করেন নি।

এটি একটি বড় অ্যাপ্লিকেশন দিয়ে কি সত্যিই খারাপ ধারণা?


13
আপনার ডিবিএকে বরখাস্ত করা উচিত।
কলিন টি হার্ট

1
আমরা সবাই চিৎকার করতে যাচ্ছি যে আপনার ডিবিএ হ'ল মরন যদি এগুলিই বলেছিল তবে আপনি কি নিশ্চিত যে আপনার ডিবিএর যুক্তির সাথে অন্য প্রসঙ্গটি ছিল না?
কেরমিট

1
সম্ভবত ডিবিএ এই জিনিসটি তৈরিতে ডেভসরা যে হাস্যকর কাজটি করেছিল তার সমর্থন করার জন্য তার যথাসাধ্য চেষ্টা করছে।
সোয়াশেক

2
অন্যদিকে @swasheck, কি আপনি তার চাকরি আছে পরে ডাটাবেসের এই DBA অধীনে অসঙ্গতি কয়েক বছর সঞ্চিত হয়েছে চাও?
টুইঙ্কলস

@ টিঙ্কেলগুলি মোটেও নয়
স্বশেক করুন

উত্তর:


6

আমার সাথে - আমি এসকিউএল সার্ভার থেকে এসেছি এবং ওরাকলকে ঘৃণা করি, তবে আমি মনে করি যুক্তিটি এখনও স্থির রয়েছে।

লজিকাল সাবসিস্টেমগুলি থেকে টেবিলগুলি আলাদা করতে স্কিমা দুর্দান্ত। বিদেশী কীগুলি ডেটা অখণ্ডতার গ্যারান্টি দেয়। এগুলি অরথোগোনাল ধারণা - স্পষ্টতই সাবসিস্টেমগুলির মধ্যে ডেটা অখণ্ডতাও হওয়া আবশ্যক। অ্যাকাউন্টিং এবং শিপিং এবং সম্ভবত কেন্দ্রীয় গ্রাহক ডেটা সিলোতে বাস করে না যেখানে অ্যাকাউন্টিং ব্যবহার করার সময় কোনও গ্রাহক মুছতে পারেন।

এর মতো, আমি মনে করি ডিবিএর প্রয়োজনীয়তা অক্ষমতার লক্ষণ। দয়া করে যে কেউ এ পদক্ষেপ নিতে পারেন এবং একটি পাল্টা যুক্তি সরবরাহ করতে পারেন - আমি খুশি হব। তবে এসকিউএল সার্ভারে এটি আমি এইভাবেই করি (যদিও, আবারও আমাদের স্কিমাটির সংজ্ঞাটি আইআরসি একটি লাক্সেল ওরাকল সংজ্ঞা থেকে আলাদা)।


4

বিস্তারিত যুক্তি ছাড়াই বিদেশী মূল সীমাবদ্ধতা বিনষ্ট করার দাবি করা বোকামি, বাইরের উল্লেখগুলি নিয়ন্ত্রণে রাখাই বোধগম্য। আপনি যদি উল্লেখ করছেন এমন স্কিমাগুলি যদি আপনার নতুন সার্ভারে আলাদাভাবে নাম দেওয়া হয় তবে কী হবে?

ওরাকল-এ আপনি বর্তমান স্কিমার বাইরে থাকা অবজেক্টগুলির জন্য সিনয়োনাইএমএস তৈরি করে এই সমস্যাটি সমাধান করেন।


1
আপনি প্রতিশব্দটি অতিরিক্ত ব্যবহার করতে পারেন এবং "এটি কী বোঝায়?" প্রশ্নটি আরও জঞ্জাল করতে পারে। এখানে নিরাপত্তা আরও বিশদের জন্য দেখুন, কর্মক্ষমতা এবং সর্বোত্তম কার্যাভ্যাস stackoverflow.com/a/10042117/851930
kevinsky

3
প্রতিশব্দগুলি বিদেশী কী বাধাগুলির লক্ষ্য হিসাবে ব্যবহার করা যায় না।
কলিন 'হার্ট

বৈধ পয়েন্ট এবং আরও প্রমাণ যে অন্যদের যোগ্যতা এবং ঝুঁকি নিয়ে তর্ক করার সুযোগ না দিয়ে বিবৃতি দেওয়া খারাপ।
টুইঙ্কলস

2

কোনও স্কিমাটিকে অন্য একটি ডাটাবেসে স্থানান্তরিত করার জন্য আপনার যদি (স্থান / সুরক্ষা / যাই হোক না কেন) প্রয়োজন হয়, আপনি আর রেফারেন্সগুলি পরিচালনা করতে পারবেন না। উল্লেখগুলি হত্যার অনুরোধ করার সম্ভবত এটিই প্রধান কারণ।


0

একমাত্র "খারাপ ধারণা" যা আমি এটির মাধ্যমে কল্পনা করতে পারি তা হ'ল আপনি কোনও ভূমিকার জন্য রেফারেন্সস অবজেক্ট বিশেষাধিকার (একটি সীমাবদ্ধতা তৈরি করার জন্য প্রয়োজনীয় যা প্রয়োজন) মঞ্জুর করতে পারবেন না। আমি স্কিমা / ব্যবহারকারী দ্বারা স্কিমা / ব্যবহারকারী করতে হবে।

তদ্ব্যতীত, আমি আপনার ডিবিএর পয়েন্টটি দেখতে পাচ্ছি না।


0

এটির জন্য একটু চিন্তা করুন: চাইল্ড টেবিলের মালিকের স্কিমাটি তার টেবিলে রেকর্ড তৈরি করতে শুরু করে এবং অজান্তেই পিতামাতা সারণী স্কিমার ব্যবহারকারীকে পিতামাতা সারণী থেকে রেকর্ড মুছতে বাধা দেয়। এটি কি এমন কিছু যা প্রত্যাশা করে এবং প্রশংসা করে?

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