我有以下型号:
class Site
has_many :posts
end
class Post
belongs_to :site
end
帖子有以下几列:
id
site_id
url
title
body
这将存储wordpress帖子,并且我想使用post_id
的wordpress帖子,因此,我可以有两个站点,这些站点将带有1
帖子。因此,我需要一种方法来重复帖子ID,但要指向不同的条目。
谢谢。
我有以下型号:
class Site
has_many :posts
end
class Post
belongs_to :site
end
帖子有以下几列:
id
site_id
url
title
body
这将存储wordpress帖子,并且我想使用post_id
的wordpress帖子,因此,我可以有两个站点,这些站点将带有1
帖子。因此,我需要一种方法来重复帖子ID,但要指向不同的条目。
谢谢。
不管用例如何,使您的ActiveRecord id
都依赖于另一个数据源是一种不好的做法。
对于您而言,请忽略常规的id
并将WordPress帖子ID存储在新列中,我们将其称为wp_id
,这在整个表中都不是唯一的。
然后,您可以创建以下索引,以加快查询速度并确保每个站点的帖子ID唯一性:
add_index :posts,[:site_id,:wp_id],unique: true
通过这种方式,您得到了所谓的复合键,这意味着site_id
和wp_id
的每种组合在posts
表中都是唯一的。>