PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menambahkan kunci asing ke model Rails

Jawaban yang saat ini diterima tentang ini tidak terlalu akurat karena tidak menambahkan kunci asing basis data. Itu hanya menambahkan kolom bilangan bulat.

Di Rel 4.2.x , pendekatan saat ini adalah:

http://guides.rubyonrails.org/active_record_migrations.html#foreign-keys

Buat migrasi:

rails generate migration migration_name

Untuk kolom yang ada , dalam migrasi tambahkan kunci asing seperti ini:

class MigrationName < ActiveRecord::Migration
  def change
    add_foreign_key :business_hours, :businesses
    add_foreign_key :businesses, :users
  end
end

Untuk Rel 4.x atau jika Anda menambahkan kolom baru dan ingin itu menjadi kunci asing, Anda dapat melakukan ini, di mana Anda mungkin juga ingin menentukan indeks sebagai true, tetapi itu bukan bagian dari persyaratan untuk kunci asing:

http://edgeguides.rubyonrails.org/active_record_migrations.html#creating-a-migration

class MigrationName < ActiveRecord::Migration
  def change
    add_reference :business_hours, :business, index: true, foreign_key: true
    add_reference :businesses, :user, index: true, foreign_key: true
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah saya menentukan INDEX dan UNIQUE INDEX?

  2. Permintaan PostgreSQL untuk mengembalikan hasil sebagai daftar yang dipisahkan koma

  3. Bagaimana cara menggunakan beberapa pernyataan WITH dalam satu kueri PostgreSQL?

  4. Deep-Dive Vendor Cloud:PostgreSQL di DigitalOcean

  5. Bagaimana cara mengonversi bilangan bulat menjadi string sebagai bagian dari kueri PostgreSQL?