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

时间:2015-07-27 16:32:35

标签: mysql ruby-on-rails jointable

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

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

1 - ID和时间详细信息

id,table_a_id,table_b_id,created_at,updated_at

2 - ID

id,table_a_id,table_b_id

3 - 只是表格ID

table_a_id,table_b_id

当前思考

我倾向于第三个选项,因为我的应用程序中没有任何地方关注何时建立关系,也没有看到ID中的要点,因为我们永远不会直接查询该表。

这是短视的吗?包含所有字段的开销很小,但如果他们只是坐在那里没有被使用,我宁愿我们没有它们。

1 个答案:

答案 0 :(得分:5)

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

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

供参考的其他资源: