【发布时间】: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