Database design 你好。您提到应用程序升级意味着必须更改每个客户端的表,因此需要大量代码。相反,我想的是,为什么不让客户机将数据库升级到下一个版本。因此,当客户机选择升级时,将创建一个新数据库,迁移表,然后删除旧数据库。通过这种方式,客户端可以控制版本号,并花费自己的时间进

Database design 你好。您提到应用程序升级意味着必须更改每个客户端的表,因此需要大量代码。相反,我想的是,为什么不让客户机将数据库升级到下一个版本。因此,当客户机选择升级时,将创建一个新数据库,迁移表,然后删除旧数据库。通过这种方式,客户端可以控制版本号,并花费自己的时间进,database-design,relational-database,database-schema,Database Design,Relational Database,Database Schema,你好。您提到应用程序升级意味着必须更改每个客户端的表,因此需要大量代码。相反,我想的是,为什么不让客户机将数据库升级到下一个版本。因此,当客户机选择升级时,将创建一个新数据库,迁移表,然后删除旧数据库。通过这种方式,客户端可以控制版本号,并花费自己的时间进行升级。如果出现错误而不是功能增强,情况当然会有所不同,这意味着必须立即进行升级。然而,鉴于我可以有自己的数据库用于测试目的,这应该会减少出现bug的可能性。因此,对于每个不同的数据库模式,我可以有一个看起来完全相同的测试数据库。我想做的是设置


你好。您提到应用程序升级意味着必须更改每个客户端的表,因此需要大量代码。相反,我想的是,为什么不让客户机将数据库升级到下一个版本。因此,当客户机选择升级时,将创建一个新数据库,迁移表,然后删除旧数据库。通过这种方式,客户端可以控制版本号,并花费自己的时间进行升级。如果出现错误而不是功能增强,情况当然会有所不同,这意味着必须立即进行升级。然而,鉴于我可以有自己的数据库用于测试目的,这应该会减少出现bug的可能性。因此,对于每个不同的数据库模式,我可以有一个看起来完全相同的测试数据库。我想做的是设置一个脚本,从数据库模式定义文件中的数据生成用户界面,并根据每个客户机的需要将其推送到每个客户机。鉴于此,我将从其他客户机存储其他数据库在同一台服务器上的应用程序中,我将创建每个数据库,其中应用程序名后跟一个下划线,后跟一个根据它们使用的模式标识特定数据库表集合的名称(因此每个模式可以有不同的名称,因此具有相同需求的客户端可以获得相同的模式名称,但具有不同需求的客户端可以获得不同的模式名称)然后我想在模式名称后面加上一个版本号,这样客户端就可以从一个版本升级到另一个版本。这三个部分将构成db名称。你发表的评论远远超出我的回答范围——但简单地说,写“一个脚本,从数据库中的数据生成用户界面”这是一项巨大的、令人敬畏的任务,远比在客户之间分割数据大得多。总的来说,我认为必须对可预测的业务事件进行模式更改是个坏主意。。。
JOHNDOEFIRM_CUSTOMERS
JOHNDOEFIRM_CLIENTS
JOHNDOEFIRM_ORDERS
...

JAKEDOESONFIRM_CUSTOMERS
JAKEDOESONFIRM_CLIENTS
JAKEDOESONFIRM_ORDERS
...