假设您有两个模型,User和City,由第三个模型CityPermission连接:
这些索引是最优的吗?这些索引能够快速地在联接表中来回访问,同时也可以快速查找表本身,还是有其他更好的方法?换句话说,如果给定
class CityPermission < ActiveRecord::Base
belongs_to :city
belongs_to :user
end
class City < ActiveRecord::Base
has_many :city_permissions
has_many :users, :through => :city_permissions
end
class User < ActiveRecord::Base
has_many :city_permissions
has_many :cities, :through => :city_permissions
end
目前,我使用以下迁移代码片段创建联结表和表的索引:
create_table :city_permissions do |t|
t.integer :user_id, :city_id
t.other_fields ...
end
add_index(:city_permissions, :user_id)
add_index(:city_permissions, :city_id)
这些索引是最优的吗?这些索引能够快速地在联接表中来回访问,同时也可以快速查找表本身,还是有其他更好的方法?换句话说,如果给定
city
和user
是City和User类的实例变量,这些索引是否能够让city.users
、city.city_permissions
、user.cities
和user.city_permissions
都同样表现出色?请注意保留HTML标记。