这是一个设计问题。
在数据库中具有一个“版本”表来存储更新日期以及与其连接的数据库和/或应用程序的版本的目的或用途是什么?
例如,以下DDL ...
CREATE TABLE
[dbo].[Version]
(
FreshnessDate DATETIME,
DatabaseVersion VARCHAR(10),
ApplicationVersion VARCHAR(10)
)
...创建一个存储一些基本版本信息的表。在我的团队中,争论是我们不需要这样做,因为每个人都从网络上的同一共享数据库进行开发(甚至是数据库开发)(不允许在开发箱中使用单个数据库,甚至是空数据库)。
反对使用这种类型的版本表的另一个论点是,它不利于我们的过程:我们在开发数据库上进行开发,然后将其用于生成单个巨大的脚本,从中确定差异并进行更新脚本已生成(手动完成迁移)。然后,此更新脚本在QA共享数据库上运行,并在通过QA后,在Production数据库上运行相同的脚本。每季度一次,将生产数据库下拉到质量检查和开发数据库服务器,以同步数据以帮助调试。
请注意,我们的部门由CFO负责,该CFO规定了流程要求。这个问题专门针对是否其他人看到Version
表的优势,或者是否真的没有必要。由于我们团队中的某人建议因为这是不必要的,因此我在这篇文章中添加了我们的过程。
我个人对此有论点,但想要添加一个这样的表是否属于过度工程的情况下,需要理事会和反馈。
谢谢!
答案 0 :(得分:0)
在我们这边,我们得到了这样的表,并基于该表进行了自动迁移-模式更新,模式迁移。我们在其他领域参考了文件。因此,没有这样的表,在我们的工作流程中是不可能存在的。表数据也会自动维护。
在这种情况下,该表的优点是您可以获取历史存储的应用程序版本和数据库版本,因此从理论上讲,在调试问题时可以获取一些其他信息。
我宁愿根据您的工作流程将其删除。