রেলের দুটি কলামে কীভাবে একটি অনন্য সূচকটি প্রয়োগ করা যায়


96

আমার একটি টেবিল রয়েছে এবং আমি দুটি কলামে একটি অনন্য সূচক যুক্ত করার চেষ্টা করছি। সেই কলামগুলিও সূচিবদ্ধ। সুতরাং আমার প্রশ্ন হ'ল আমি যদি কেবল সূচকগুলি সরাতে পারি যারা কেবলমাত্র একটি কলামের জন্য ছিল বা আমাকে যদি তিনটি সূচক ব্যবহার করতে হয়:

add_index "subscriptions", ["user_id"]
add_index "subscriptions", ["content_id"]
add_index "subscriptions", ["user_id"], ["content_id"], :unique => true

4
পার্শ্ব নোট হিসাবে: আপনি যদি মাইএসকিউএল ব্যবহার করছেন তবে আপনার used_idএবং content_idউভয় কলামের একটি অনন্য সূচী থাকলে আপনার এবং পৃথক সূচীগুলিতে কোনও ধারণা নেই । এটি সম্ভবত অন্যান্য ডিবিগুলিতেও প্রযোজ্য ... আপনি যা প্রত্যাশা করছেন তার বিপরীতে, এটির কার্য সম্পাদনে বিরূপ প্রভাব পড়বে (বিশেষত সন্নিবেশ / আপডেট)।
হুরিখন 77

উত্তর:


189
add_index :subscriptions, [:user_id, :content_id], unique: true

6
এছাড়াও বিকল্প বাক্য গঠন রয়েছে: অ্যাড_ইন্ডেক্স: সাবস্ক্রিপশন, [: ইউজার_আইডি,: কনটেন্ট_আইডি],: অনন্য => সত্য অ্যাড_ইন্ডেক্স: সাবস্ক্রিপশন,% ডাব্লু (ইউজার_আইডি কনটেন্ট_আইডি),: অনন্য => সত্য তারা একই জিনিস, কেবল আলাদা সিনট্যাক্স কলামগুলি নির্দিষ্ট করার জন্য।
ফ্রেঞ্চোইস বিউসোলিল

14
%w(user_id content_id)রুবিতে @ ফ্রানসোইসবিউসোলিল কেবল একটি অ্যারে তৈরি করে, এটি রেলের জন্য বিশেষ নয়। আপনি একই কাজটি করতে পারেন "user_id content_id".splitযা এখনও স্ট্রিংগুলির একটি অ্যারে তৈরি করছে। আমি নিশ্চিত যে আপনি এটি জানেন, এই মন্তব্যটি অন্য পাঠকরা এটি রেলের সাথে ভুলভাবে সম্পর্কিত না করে :)
খাজা মিনহাজউদ্দিন

টেবিল তৈরির জন্য এর সিনট্যাক্সটি কী হবে? <- খুঁজে পাওয়া উত্তর ( stackoverflow.com/questions/4870961/... )
tnaught

এটি ব্যবহারের পরে আমার অদ্ভুত সমস্যা হচ্ছে। রেক ডিবি ব্যবহার করে কোনও নতুন স্থানান্তর চালাতে সক্ষম নয়: মাইগ্রেট করুন। কেবলমাত্র সংস্করণ নম্বর রেক ডিবি ব্যবহার করে মাইগ্রেশন চালাতে সক্ষম: মাইগ্রেট করুন: একবারে এক ফাইলের VERSION = 20180411062714। আমার কাছে ইতিমধ্যে টেবিলে ডেটা ছিল যা আমি দুটি কলামে অনন্য সত্য করেছি।
thedudecodes

4
@ ফ্রানসোয়া বিউসোলিল ওয়েল, আসলে তারা একই জিনিস নয়, %w(user_id content_id)এটি স্ট্রিংয়ের অ্যারে। যা হিসাবে একই ['user_id', 'content_id']। অ্যারে অফ সিম্বলগুলির জন্য আলাদা স্বরলিপিটি %i(user_id content_id), বা ওপি যেমন লিখেছিল[:user_id, :content_id]
সাসা ব্লগোজেভিচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.