2013-08-16 3 views
0

Каков обычный подход, когда я хочу читать из текстового файла и обновлять свою базу данных.Подход базы данных обновлений Rails

Во-первых, я проверяю, существует ли запись с использованием уникального атрибута (допустим, «название»), если не ОК, я просто создаю его. Но если он существует и обновляется один или несколько его атрибутов, я просматриваю все его атрибуты и сравниваю старые с новыми. Есть ли более дешевый способ сделать это?

ответ

0
  1. Добавить индекс для Uniq поля
  2. Вам не нужно проходить через все атрибуты, проверьте с record.changed возврата ничего [если не будет никаких изменений, то он вернет пустой массив]. Если это не так, не обновляйте, иначе обновляйте свою запись.

Более продвинутые: вставки в текст файла еще одно поле, которое значение updated_at из записи, если это значение изменяется в следующий раз при обновлении базы данных, а затем обновить запись. Это было бы быстрее наверняка :)

0

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

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