Корректировки, необходимые в приложении для направляющих для использования Datamapper вместо ActiveRecord

Если вы уже используете аналитику (ROW_NUMBER() OVER ...), то добавление еще одной аналитической функции к тому же разделению приведет к незначительным затратам на запрос.

С другой стороны, есть много других способов сделать нумерацию страниц, один из которых использует rownum:

SELECT * 
  FROM (SELECT A.*, rownum rn
          FROM (SELECT *
                  FROM your_table
                 ORDER BY col) A
         WHERE rownum <= :Y)
 WHERE rn >= :X

Этот метод будет лучше, если у вас есть соответствующий индекс в столбце заказа. В этом случае может быть более эффективно использовать два запроса (один для общего числа строк, один для результата).

Оба метода являются подходящими, но в целом, если вы хотите, чтобы количество строк и набор разбивались на страницы, использование аналитики более эффективно, поскольку вы запрашиваете строки только один раз.

5
задан Baker 8 June 2009 в 00:04
поделиться

1 ответ

Сегодня Rails хорошо работает с ActiveRecord; изменение ORM наверняка доставит вам некоторые проблемы. Rails 3.0 не будет зависеть от ORM, поэтому я ожидаю, что переключатель, подобный тому, который вы описываете, будет проще в будущем.

Если вы не жаждете понять Rails наизнанку, и у вас будет время исправить глюки, которые ваше приложение откроется, придерживайтесь ActiveRecord.

Могу ли я встретить еще много примеров такой функциональности, которая потребует корректировок в моем приложении?

Это зависит от кода, который вы уже написали. По поводу того, что вы сообщили в своем вопросе, я бы сказал да .

Выполним ли этот проект или он, вероятно, потребует большого количества сложных хакерских атак?

Это выполнимо и потребует множества сложных хакерских действий. Обратной стороной является то, что большая часть того, что вы узнаете из этого хакерского метода, скорее всего, будет устаревшей в Rails 3.0.

3
ответ дан 15 December 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: