数据库创建公约

时间:2017-04-06 02:55:56

标签: database database-design relational-database

我们正在开发一种新产品,它需要使用轻量级数据库。然而,我和我的同事讨论了数据库创建的约定。他们的心态是我们应该快速构建数据库的大纲并进入并不加选择地添加和删除表格和内容,直到它看起来像我们想要的那样。我告诉他们正确的方法是制作一个遵循与此类似的格式的脚本:

删除数据库;

创建表格;

插入初始数据;

我说这比随机更换表更好。您应该只对脚本进行更改,并在每次要更新数据库设计时重新运行脚本。他们说这是毫无意义的,他们的方式更快(由于数据库有点小,但它仍然有点重,但我仍觉得这是一种糟糕的做事方式)。他们最担心的是我放弃了数据库,他们很不高兴我要删除他们放在那里的随机数据用于测试目的。就在那时我澄清你将插入作为脚本的一部分包含在内,作为初始数据。他们仍然不相信。他们用数据库告诉我他们从未听说过这样的事情。事实是我们都需要更多的数据库经验,但我知道这是开发脚本和创建数据库的正确方法。有没有人有任何明确解释这种方法可以支持我的在线资源?如果我对此有误,请随意纠正我。

1 个答案:

答案 0 :(得分:1)

好吧,我不知道你的项目的细节,但我认为你可以非常安全地假设你在这个问题上做得很好,原因有很多。

  1. 如果您没有指定数据库结构的脚本,如何创建新的实例?部署到生产环境或意外删除或服务器崩溃时会发生什么?拥有一个脚本意味着您不必记住所有设置方式的所有细节(即使对于小型数据库也是如此)。

  2. 从长远来看,它的速度更快。我不了解你,但在我的项目中,我不断在线提供新的数据库,例如单元测试,新的分支机构和部署。如果我每次都需要永久地重新创建数据库。是的,需要额外的时间来维护数据库脚本,但它几乎总能节省您在项目生命周期内的时间。

  3. 这并不难。我不知道您正在使用的数据库,但其中许多数据库支持将模式导出为DDL脚本。你可以从那开始并从中修改它。无需输入所有内容。如果您的数据库不会这样做,那么值得快速搜索,看看与您的数据库配合使用的第三方工具是否会为您完成。

  4. 确保将脚本检入源控制系统。它与源代码的任何其他部分一样重要。

    我认为像你提到的那样拥有一个数据播种脚本是个好主意。但请将其作为与数据库创建脚本不同的脚本。这样你就可以开发者种子脚本,单元测试种子脚本,生产种子脚本等等。

相关问题