2015-12-04 2 views
0

Я занимаюсь разработкой приложений веб-магазин Rails и я следующую систему настройки:Rails связи с веб-службами

  • 2 отдельных веб-сервисов (очень простые Rails приложения с тем же кодом, но с различными базами данных)
  • Приложение Main Rails, которое хранит информацию от обеих веб-служб.

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

Во-первых, что обычно хорошая стратегия для этого типа - получение данных из веб-сервисов и их хранение? Также в какой момент я хочу попросить обновление основной базы данных? Кажется, слишком много, если каждый раз, когда пользователь подключается .

ответ

0

Я предполагаю, что в данных есть ключевое значение id, если не вы его определяете. Скорее всего, это число с автоматическим добавочным целым числом, так как оно помечено как рельсы. Хотя вам, вероятно, понадобится UUID (возможно, SecureRandom.uuid), поскольку два источника данных не зависят от eac h other, что добавляет значительную сложность в приложении rails

В этом случае вы можете использовать @model = Model.find_or_create_by (key_value: значение), чтобы избежать создания дубликатов, и @ model.update_attributes (по существу использовать действие обновления) изменять только то, что изменилось.

+0

У меня есть столбец идентификатора и рассматривался, чтобы использовать его для этой цели, но у двух веб-служб могут быть разные записи с одним и тем же идентификатором. Я думаю, что было бы сложнее, если бы основное приложение должно было координировать идентификаторы веб-сервисов. – MZokov

+0

, тогда вы должны использовать uuid или создать уникальный составной ключ из данных – engineerDave

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