重构 Rails 连接表——我应该保留哪种格式

Refactoring Rails Join Tables – Which format should I keep

我目前正在重构 Rails 应用程序中使用的 table。在整个开发过程中,人们使用了各种不同的方法来创建要在 has_and_belongs_to_many.

中使用的连接 table

我应该使用这三种格式中的哪一种;

1 – ID 和时间详情

id, table_a_id, table_b_id, created_at, updated_at

2 – ID

id, table_a_id, table_b_id

3 – 只是 table 个 ID

table_a_id、table_b_id

目前的想法

我倾向于第三个选项,因为在我的应用程序中,我们不关心何时建立关系,我也看不到 ID 中的意义,因为我们永远不会直接查询 table。

这是近视吗?包括所有字段的开销将是最小的,但如果它们只是坐在那里而不被使用,我宁愿我们没有它们。

当您使用 has_and_belongs_to_many 关联时,您的第三个选项是最佳选择。 HABTM 关联 table 除了引用行的外键外不应包含任何其他数据。

否则,如果您确实想在两个 table 之间包含任何类型的关系数据,您可以使用 has_many :through 作为 rails 关联。

其他参考资源: