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

标签 mysql ruby-on-rails join

我目前正在重构 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

表a_id、表b_id

当前的想法

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

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

最佳答案

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

否则,如果您确实想要在两个表之间包含任何类型的关系数据,则可以使用 has_many :through 进行 Rails 关联。

其他引用资源:

关于mysql - 重构 Rails 连接表 – 我应该保留哪种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31658531/

相关文章:

css - 删除前确认故障

sql - 内连接和 where in select join SQL 语句的区别

c# - LINQ 按日期分组 - 在不使用连接的情况下包括空天

mysql - 连接两个表并按类型创建虚拟列

mysql - Cloudformation RDS 模板无法解析安全组 ID

mysql - sql查询where条件与或

java - 如何诊断野蝇10.1下降的原因

php - 如何阻止 PHP 向 MYSQL 数据库添加空白行/字段

ruby-on-rails - ActionMailer - 限制收件人数量?

css - Bootstrap 文本字段突然缩小