База данных: сценарий инициализации и отказоустойчивый код. - PullRequest
0 голосов
/ 24 марта 2010

Мне было интересно ... при работе с фиксированным набором данных (скажем, численность населения некоторых городов в таблице базы данных CITY_NAME, CITY_POPULATION), которая может быть изменена, что является лучшей практикой?

  1. использовать сценарий инициализации, чтобы заполнить таблицу всеми возможными записями, и написать код, чтобы обновлять только количество граждан для данного города
  2. используйте «умный» код, который может обрабатывать создание новой записи для ранее не учтенного города и обновлять существующие вместо

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

Пойдете ли вы на дешевую, но неясную процедуру инициализации или на более сложный, но надежный код?

1 Ответ

1 голос
/ 24 марта 2010

Если в вашей базе данных она есть, я бы использовал оператор upsert (называемый слиянием в SQL Server 2008, не уверен, что другие dbs могли бы его назвать), если нет, я бы свернул свой собственный, обновив записи, которые имели соответствующую запись и вставляя записи, которые не делают.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...