index: il est là pour dupliquer une colonne spécifique dans le tableau pour accélérer la recherche.
Créez une colonne user_id avec les références: t.references: user et index user_id. (Aucune contrainte de clé externe)
Foreign_key: true: Collez une contrainte de clé étrangère. Empêche l'ID d'un utilisateur inexistant d'être enregistré dans user_id. Empêche les erreurs qui effacent les enregistrements de la table parent.
add_foreign_key (: articles ,: users) ajoutera un index s'il n'y a pas d'index, et le réutilisera s'il y en a un. Par conséquent, l'ordre d'ajout des contraintes de clé externes → collage des index n'est pas acceptable.
rails g corps de l'article modèle: texte utilisateur: références
migrationfile.rb
class CreateArticles < ActiveRecord::Migration[5.2]
def change
create_table :articles do |t|
t.text :body
t.references :user, foreign_key: true
t.timestamps
end
end
end
Recommended Posts