我目前正在重构Rails应用程序中使用的表。在整个开发过程中,人们使用各种不同的方法来创建要在has_and_belongs_to_many
中使用的连接表。
我应该使用以下三种格式中的哪一种;
id,table_a_id,table_b_id,created_at,updated_at
id,table_a_id,table_b_id
table_a_id,table_b_id
我倾向于第三个选项,因为我的应用程序中没有任何地方关注何时建立关系,也没有看到ID中的要点,因为我们永远不会直接查询该表。
这是短视的吗?包含所有字段的开销很小,但如果他们只是坐在那里没有被使用,我宁愿我们没有它们。
答案 0 :(得分:5)
当您使用has_and_belongs_to_many
关联时,您的第三个选项是最佳选择。除了引用行的外键之外,HABTM关联表不应包含任何其他数据。
否则,如果您确实希望在两个表之间包含任何类型的关系数据,则可以使用has_many :through
作为rails关联。
供参考的其他资源: