Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 更改数据库架构,但保持数据访问兼容_Sql_Triggers - Fatal编程技术网

Sql 更改数据库架构,但保持数据访问兼容

Sql 更改数据库架构,但保持数据访问兼容,sql,triggers,Sql,Triggers,我正在做一个相当大的项目,将软件改写成.NETC。最初的软件是用Visual DataFlex for DOS编写的,用于将每个表的数据存储在单独的文件中,我们现在使用原始软件的驱动程序,这意味着数据库现在是SQL。但我认为真正需要改变的是数据库模式。我想知道的是,我们是否可以为数据库编写SQL触发器,这样当驱动程序尝试访问旧的数据库模式时,我们也可以在新的数据库模式中获取并设置数据,这样我们就可以更改它,但保持一切正常。我以前没有使用过触发器,所以我不确定这是否有效,或者它可能有哪些缺点或问题

我正在做一个相当大的项目,将软件改写成.NETC。最初的软件是用Visual DataFlex for DOS编写的,用于将每个表的数据存储在单独的文件中,我们现在使用原始软件的驱动程序,这意味着数据库现在是SQL。但我认为真正需要改变的是数据库模式。我想知道的是,我们是否可以为数据库编写SQL触发器,这样当驱动程序尝试访问旧的数据库模式时,我们也可以在新的数据库模式中获取并设置数据,这样我们就可以更改它,但保持一切正常。我以前没有使用过触发器,所以我不确定这是否有效,或者它可能有哪些缺点或问题。

我离开了重写此系统的项目,但从那时起我使用视图来更改数据结构的显示方式,并且使用了更多的触发器,我同意关于这个问题的评论,现在更改模式是一项艰巨的工作,最好先专注于重写代码,然后以一种可以在以后处理模式更改的方式编写代码

您可以使用视图和触发器,但当您更换一个正常工作的遗留系统时,您确实需要选择您的任务。我会保留DB模式(尽管可能有缺陷),并专注于C#重写。我同意@Conrad Frix的观点:如果你正在重写一个可用的遗留系统,你通常不想同时处理一个不断变化的结构和新系统。在现有架构上编写高质量的n层系统。然后,当您不再需要处理遗留系统时,更改模式就会容易得多。