ruby on rails - কলামের সংমিশ্রণে অনন্য সীমাবদ্ধতা যোগ করার জন্য একটি মাইগ্রেশন



ruby-on-rails database (4)

আমি কলাম সমন্বয় অনন্য সীমাবদ্ধতা প্রয়োগ করার জন্য একটি মাইগ্রেশন প্রয়োজন। অর্থাৎ একটি people টেবিলে, first_name সমন্বয়, last_Name এবং Dob অনন্য হওয়া উচিত।


Answer #1

Howmanyofme.com এর মতে, মার্কিন যুক্তরাষ্ট্রে "জন স্মিথ নামে 46,427 জন আছেন"। যে প্রায় 127 বছর। এটি একটি মানুষের গড় জীবদ্দশায় ভাল, এটি একটি ডিওবি সংঘর্ষ গণিত নির্দিষ্ট মানে।

আমি যা বলছি তা হল অনন্য ক্ষেত্রগুলির বিশেষ সংমিশ্রণটি ভবিষ্যতে চরম ব্যবহারকারী / গ্রাহকের হতাশা সৃষ্টি করতে পারে।

যথাযথ হলে জাতীয় পরিচয় নম্বরের মত আসলেই অনন্য কিছু বিবেচনা করুন।

(আমি বুঝতে পেরেছি যে এই দলের সাথে আমি খুব দেরিতে আছি, কিন্তু এটি ভবিষ্যতে পাঠকদের সাহায্য করতে পারে।)


Answer #2

আপনি একটি সূচক ছাড়া একটি সীমাবদ্ধতা যোগ করতে পারেন। এই আপনি ব্যবহার করছেন কি ডাটাবেস উপর নির্ভর করবে। নীচে Postgres জন্য নমুনা মাইগ্রেশন কোড। (tracking_number, carrier) আপনি সীমাবদ্ধতার জন্য যে কলামগুলি ব্যবহার করতে চান সেগুলির একটি তালিকা।

class AddUniqeConstraintToShipments < ActiveRecord::Migration
  def up
    execute <<-SQL
      alter table shipments
        add constraint shipment_tracking_number unique (tracking_number, carrier);
    SQL
  end

  def down
    execute <<-SQL
      alter table shipments
        drop constraint if exists shipment_tracking_number;
    SQL
  end
end

আপনি যোগ করতে পারেন বিভিন্ন সীমাবদ্ধতা আছে। ডক্স পড়ুন


Answer #3

হাই আপনি উদাহরণস্বরূপ কলাম আপনার মাইগ্রেশন মধ্যে অনন্য সূচক যোগ করতে পারেন

add_index(:accounts, [:branch_id, :party_id], :unique => true)

অথবা প্রতিটি কলামের জন্য আলাদা সূচী পৃথক


Answer #4

add_index :people, [:firstname, :lastname, :dob], :unique => true





database