Пользовательский сценарий выглядит следующим образом.
В моем приложении есть список компаний.Каждой компании присвоен уникальный номер (номер телефона).
Используя службу API от Google, приложение может выбирать компании, которые могли быть уже зарегистрированы в моем приложении или не зарегистрированы в моем приложении.
Поэтому из вызова API я хочу удалить компании, которые уже зарегистрированы, путем поиска номера телефона из моего приложения.Результат от вызова API будет меньше 20.
Наименее вдумчивый способ - проверить, существует ли запись с номером телефона, перебирая результат API, что будет стоить O (n) SQL запросов.(Я не уверен, что это не имеет значения, если столбец номера телефона проиндексирован, а n
меньше или равно 20)
Используйте один запрос, который имеет n
количество or
сравнений, чтобы выбрать компании с любым номером телефона из результата API и «отфильтровать» их, выполнив итерацию по результату запроса.
DoВы думаете, что второй метод в конечном итоге должен будет сравнить O (n ^ 2) раз в худшем случае в процессе «фильтрации»?
Что было бы лучшим решением для решения этой проблемы?
Я использую Ruby on Rails 3 и ActiveRecord с MySQL.