2015-11-17 2 views
0

Я унаследовал другой проект, который имеет таблицу истории. Таблицы выглядят так и не удаляются из базы данных 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 подходить к базе данных, как это?

ответ

Смежные вопросы