В моем приложении на Rails я пару раз сталкивался с проблемой, которую я хотел бы знать, как другие люди решают:
У меня есть определенные записи, где значение является необязательным, поэтому некоторые записи имеютзначение, а некоторые являются пустыми для этого столбца.
Если я упорядочиваю по этому столбцу в некоторых базах данных, сначала сортируются нули, а в некоторых базах сортируются нули в конце.
Например, у меня есть фотографии, которыеможет принадлежать или не принадлежать коллекции, то есть есть некоторые фотографии, где collection_id=nil
, а некоторые - где collection_id=1
и т. д.
Если я сделаю Photo.order('collection_id desc)
, то в SQLite я получаю нулевые значения последними, но в PostgreSQL Iсначала получите пустые значения.
Есть ли хороший, стандартный способ Rails справиться с этим и получить согласованную производительность для любой базы данных?