5

我想知道创建和维护数据库映射和 SQL 脚本的最佳方法是什么。我知道我更喜欢在文本编辑器上手动编写 SQL 脚本(加上在一张纸上设计一张贴在我身边的地图),而其他人更喜欢使用数据库地图软件(MySQL Workbench、Visual Studio ...一些在这篇文章中列出)来自动生成脚本。

两种解决方案都有优点和缺点。我看到了这些优点:

  • 手动 SQL 脚本
    1. 确切地知道你在写什么。
    2. 您能够保持干净且易于阅读的 SQL 代码。
    3. 编写代码,您可以更好地了解数据库细节。
    4. 编写代码使您能够练习您的 SQL 知识。
  • 从设计的地图自动生成脚本
    1. 节省一些时间。
    2. 即使不了解 SQL 语言,您也可以生成脚本(即使我将此脚本列为手动 SQL 脚本的相反优势)。
    3. 防止错别字。

你怎么看,你会怎么做?

4

1 回答 1

7

如果自动化某事可以节省时间和人为错误,您为什么不这样做呢?如果出现以下情况,我会尝试自动生成 SQL:

  1. 我已经填充了一个测试数据库,并通过编写和执行我没有跟踪的即席 SQL 非查询以有机方式构建了模式;和
  2. 如果数据库相当简单且标准化程度较低

另一种罕见的情况可能是,如果您有大量数据集列表,需要以 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.')
于 2011-07-04T11:14:46.943 回答