我正在使用的产品的安装例程的一部分安装数据库更新实用程序。该实用程序检查用户数据库的当前版本,并(如有必要)执行一系列将数据库升级到当前版本的SQL语句。如何通过安装程序部署复杂的SQL解决方案?
两个对程序的主要特点:
- 一旦启动,它运行,而无需用户交互
- SQL操作保存用户数据
的目标是保持安装的完整性/数据库例程对于最终用户来说尽可能简单(目标受众是非技术性的)。但是,我发现在某些情况下,这两个特征是不一致的。例如,我想为我的一个表添加唯一索引 - 但现有数据可能已经违反了这条规则。我可以:
- 静默地为用户选择什么是“正确的”并放弃(或归档)数据;或
- 请用户理解唯一索引是什么,并让他们选择什么样的数据去哪里
无论选择声音吸引我。我可以妥协,而不是创建一个唯一的索引,但这会吸引。我想知道其他人在这种情况下做什么?
这是我最终使用的解决方案。我测试看是否可以添加唯一索引。如果我不能,那么我将回滚数据库并尝试向用户提供有关如何继续的简单说明。不理想,但至少数据的完整性在用户手中... – Mitkins 2008-12-03 01:51:05