使用 has_many :through 为类别和帖子创建 table 分类
Creating a table categorization with has_many :through for categories and posts
大家好,我正在 has_many :through association in ruby on rails。
如果我的示例没问题,我需要一些帮助。
所以我假装为帖子做分类。
假设我已经构建了 class post。
因此,为了为类别创建数据库,我假装这样做:
class CreateCategories < ActiveRecord::Migration[5.0]
def change
create_table :categories do |t|
t.string :name
t.timestamps
end
end
def change
create_table :categorizations do |t|
t.belongs_to :post, index: true
t.belongs_to :category, index: true
t.integer :position
t.timestamps
end
add_index :categorizations, [:product_id, :category_id], unique: true
end
end
这些索引可以提升数据库吗?
是的,您在底部定义的那个多列索引:
add_index :categorizations, [:product_id, :category_id], unique: true
有效。 但是它也没有必要,而且性能可能不如您在 product_id
和 category_id
.
上单独定义的单列索引
大家好,我正在 has_many :through association in ruby on rails。 如果我的示例没问题,我需要一些帮助。 所以我假装为帖子做分类。 假设我已经构建了 class post。 因此,为了为类别创建数据库,我假装这样做:
class CreateCategories < ActiveRecord::Migration[5.0]
def change
create_table :categories do |t|
t.string :name
t.timestamps
end
end
def change
create_table :categorizations do |t|
t.belongs_to :post, index: true
t.belongs_to :category, index: true
t.integer :position
t.timestamps
end
add_index :categorizations, [:product_id, :category_id], unique: true
end
end
这些索引可以提升数据库吗?
是的,您在底部定义的那个多列索引:
add_index :categorizations, [:product_id, :category_id], unique: true
有效。 但是它也没有必要,而且性能可能不如您在 product_id
和 category_id
.