我想知道创建和维护数据库映射和SQL脚本的最佳方法是什么。我知道我更喜欢在文本编辑器上手工编写SQL脚本(以及在一张纸上设计我旁边的地图),而其他人则更喜欢使用数据库地图软件(MySQL Workbench,Visual Studio) ... this post中列出的一些内容,以自动生成脚本。
这两种解决方案都有优点和缺点。我看到了这些优点:
您如何看待,您采用什么方式进行?
答案 0 :(得分:7)
如果自动化某些东西可以节省时间和人为错误,为什么不这样做呢?我会尝试自动生成SQL,如果:
另一种罕见的情况可能是,如果您有一个庞大的数据集列表,需要以SQL的形式提取架构。
手工编写的好处是,您了解设计的每个部分,并且能够更好地实施数据完整性(例如,通过使用外键或限制数据类型)。简而言之,我同意你的专业人士名单。
对于升级脚本,我更喜欢手工编写这些脚本,因为它们通常很短,并且对于最终运行它们的人来说,它们更易于阅读。
我对升级脚本的一个提示是确保每个脚本在表中添加一行说明升级版本号,该表专门用于确保数据库正确版本化。类似的东西:
INSERT INTO DB_VERSION (upgrade_time, version_from, version_to, comment)
VALUES ('2011-07-04T120320', '2.2.4', '2.3', 'add column x to table y.')