假设我们有一个执行“作业”的系统。这些作业可以被连接成我们称之为“集成”的序列,它们实际上是一组有序的作业。
传统的解决方案是使用联接表:
integrations: id, name
jobs: id, name, commands
integrations_jobs: id, integration_id, job_id, integration_order
integration_order
是指该集成作业在集成中的位置。
如果我们使用Postgres数组会怎样呢?
integrations: id, name, [job_id1, job_id2, job_id3]
jobs: id, name, commands
使用数组替代连接表是否存在任何明显的缺点?我们正在Heroku上使用Rails 5和Postgres。
has_many through:
关联,并使用 Papertrail 对“关联模型”进行版本控制。 - max