Я унаследовал другой проект, который имеет таблицу истории. Таблицы выглядят так и не удаляются из базы данных SQL Server.История таблицы дизайн с Rails
ПРИМЕЧАНИЕ. Каждая таблица представляет собой «пару» таблиц. Каждая таблица имеет родительскую и дочернюю таблицу.
tBooks
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. Единственная «активная» запись - это любая запись, которая имеет NULL в таблице deleted_at для детей. Это напоминает мне базу данных типа wikipedia, в которой есть история изменений на запись, но только одна активная запись за раз.
В настоящее время для получения активной записи, база данных содержит представление 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
Как Рубин на Rails подходить к базе данных, как это?