【问题标题】:History table design with Rails使用 Rails 设计历史表
【发布时间】:2015-11-17 23:13:38
【问题描述】:

我继承了另一个具有历史记录表的项目。这些表看起来像这样,并且位于一个不可删除的 SQL Server 数据库中。

注意:每个表都是“一对”表。每个表都有一个父表和子表。

书籍

id
created_at
updated_at
deleted_at (if this has a date, entire record and all children considered deleted)

tBookDetails

id
book_id (FK to tBooks id column)
... (related book data)
created_at
updated_at
deleted_at

添加与此表的任何关系,例如 ActiveRecord 如何在 Rails 中处理它们的关系。

tCheckouts

id
created_at
updated_at
deleted_at

tCheckoutDetails

id
checkout_id
book_id
user_id
due_at
... (related checkout data)
created_at
updated_at
deleted_at

基本上,tBooks 表在 tBookDetails 表中有一条记录,其中有多个子记录。唯一的“活动”记录是子项的 deleted_at 表中具有 NULL 的任何记录。这让我想起了一个维基百科类型的数据库,其中每条记录都有更改历史记录,但一次只有一条活动记录。

目前要检索活动记录,数据库包含一个 SQL Server 视图,如下所示:

SELECT bd.*
FROM tBooks b
INNER JOIN tBookDetails bd ON bd.book_id = b.id
WHERE bd.deleted_at IS null
  AND b.deleted_at IS null

Ruby on Rails 如何处理这样的数据库?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rails-activerecord


    【解决方案1】:

    在 Rails 中非常简单,你需要associationsscopes 和非标准表名需要override the table name

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 2014-11-15
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多