代码之家  ›  专栏  ›  技术社区  ›  Manrico Corazzi

数据库:初始化脚本与故障保护代码(也就是说,总是更新与插入或更新)

  •  0
  • Manrico Corazzi  · 技术社区  · 16 年前

    我在想…当使用一组固定的数据(例如:数据库表city_name中的某些城市的人口,city_population)时,哪些是最佳实践?

    1. 使用初始化脚本将所有可能的记录填充到表中,并编写代码以仅更新给定城市的公民数
    2. 使用“智能”代码,该代码可以处理为以前未登记的城市创建新记录的过程,并更新现有的记录

    在第一种情况下,如果脚本以前没有运行过,代码将失败;在第二种情况下,代码肯定会有点复杂(所有的查询“show all records”只列出有预算数据的城市,而在第一种情况下,它们将至少提供城市的名称“人口”领域令人担忧的零。

    你会选择一个便宜但晦涩难懂的初始化过程还是更复杂但健壮的代码?

    1 回复  |  直到 16 年前
        1
  •  1
  •   HLGEM    16 年前

    如果您的数据库有upsert(在sql server 2008中称为merge,不确定其他dbs可能会称之为upsert)语句,如果没有,我将通过更新有匹配记录的记录并插入没有匹配记录的记录来滚动自己的记录。

    我不会使用我知道在可预见的情况下会失败的代码。在这种情况下,代码甚至都不复杂。我能在不到十分钟的时间里写出整件事。