Chỉ mục cải thiện tốc độ hoạt động truy xuất dữ liệu trên bảng cơ sở dữ liệu. Khi chúng tôi viết index: true
vào bất kỳ cột nào, nó sẽ thêm một chỉ mục cơ sở dữ liệu vào cột này. Ví dụ tôi đã tạo ra một bảng:
create_table :appointments do |t|
t.references :student, index: true
end
Nó sẽ tạo ra student_id
cột trong appointments
bảng.
Khóa ngoại có trường hợp sử dụng khác nhau, đó là mối quan hệ giữa các bảng. Nó cho phép chúng ta khai báo một chỉ mục trong một bảng có liên quan đến một chỉ mục trong bảng khác và cũng có một số ràng buộc được đặt. Cơ sở dữ liệu thực thi các quy tắc của mối quan hệ này để duy trì tính toàn vẹn tham chiếu. Ví dụ: chúng tôi có hai bảng profiles
và educations
và tiểu sử có thể có nhiều kiến thức.
create_table :educations do |t|
t.belongs_to :profile, index: true, foreign_key: true
end
Bây giờ chúng ta có profile_id
cột trong bảng educations
đó là chìa khóa nước ngoài của profiles
bảng. Nó ngăn không cho bản ghi được nhập vào bảng educations
trừ khi nó chứa giá trị profile_id
tồn tại trong bảng profiles
. Vì vậy, tính toàn vẹn tham chiếu sẽ được duy trì.
Nguồn
2016-12-13 14:36:04
http://stackoverflow.com/questions/22815009/add-a-reference-column-migration-in-rails-4 có thể điều này sẽ giúp – Bijendra