Как эффективно запрашивать данные в Ruby с помощью Sequel

Я пытаюсь эффективно получить данные в своем проекте. У меня есть база данных (многоязычная). И мне нужно получить все категории верхнего уровня (у которых нет parent_id на верхнем уровне) и те, у которых нет записи в таблице данных (самая глубокая) в single_article.

category_meta находится на верхнем уровне, версия имеет внешний ключ meta_id из мета-идентификатора, таблица категорий имеет внешний ключ из таблицы версий в version_id.

Это картинка. схема

Я могу сделать это в нескольких запросах. Сначала получите идентификаторы для верхнего уровня, затем получите верхние идентификаторы без единого включения, затем diff .. но я надеюсь, что лучшего способа я не вижу.

Таблицы имеют связи с продолжениями по этим идентификаторам. мета к версии one_to_many-many_to_many и one_to_one между версией и «данными» таблица категорий

Любые предложения, пожалуйста?

Если у вас есть идея только в sql, это тоже будет полезно

Спасибо

M.

Мне нужно получить идентификатор из категории_meta и столбца категории из категории в паре.


person Mlok    schedule 16.03.2018    source источник


Ответы (1)


в SQL это будет выглядеть так:

select category_meta.id, category.category
from category_meta
join category_version using(category_meta.id = category_version.meta_id)
join category using(category.version_id = category_version.id)
where category_meta.type = 'some_type';

Вы не указали какие-либо условия, поэтому я просто просмотрел один из них в качестве предположения.

person Nick Ellis    schedule 22.03.2018