Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
C# 如何在未来发展MVC3站点的SQL Server数据库并避免数据丢失_C#_Database_Entity Framework_Asp.net Mvc 3_Data Loss - Fatal编程技术网

C# 如何在未来发展MVC3站点的SQL Server数据库并避免数据丢失

C# 如何在未来发展MVC3站点的SQL Server数据库并避免数据丢失,c#,database,entity-framework,asp.net-mvc-3,data-loss,C#,Database,Entity Framework,Asp.net Mvc 3,Data Loss,我正准备用C#、实体框架和SQL Server开发一个MVC 3网站 这个网站是为重要的工作和数据丢失是绝对不允许的!据我所知,我没有开发数据库的经验,但我知道这个项目应该能够在使用增量开发方法的同时进行开发。我可以知道有什么指导方针可以遵循吗?我如何在没有任何错误的情况下改进它?在数据库初始设计或任何方面。仅0数据丢失是最高优先级要求 我需要这2个问题的答案,并希望一些经验可以指导我在这个问题上 如何在不影响同一表中其他数据的情况下更新数据库include表、列 如何更新远程数据库(例如C#窗

我正准备用C#、实体框架和SQL Server开发一个MVC 3网站

这个网站是为重要的工作和数据丢失是绝对不允许的!据我所知,我没有开发数据库的经验,但我知道这个项目应该能够在使用增量开发方法的同时进行开发。我可以知道有什么指导方针可以遵循吗?我如何在没有任何错误的情况下改进它?在数据库初始设计或任何方面。仅0数据丢失是最高优先级要求

我需要这2个问题的答案,并希望一些经验可以指导我在这个问题上

  • 如何在不影响同一表中其他数据的情况下更新数据库include表、列
  • 如何更新远程数据库(例如C#窗口应用程序和数据库不在我身边)

  • 对于1。问题数据库位于我的web服务器上,但问题2数据库位于用户端。

    答案是:您有责任以满足您需求的方式设计升级过程。没有自动魔法能帮你做到这一点

    该过程通常涉及到创建升级SQL脚本,该脚本将修改数据库结构,如果需要,还可以在主表结构更改时将数据移动到临时表中,以避免数据丢失。您还可以在一些特殊的表中维护数据库版本,并在运行更新之前进行检查,以确保更新脚本在预期的旧版本上运行

    有诸如RedGate SQL Compare和Visual Studio数据库工具(仅高级和最终版本)之类的工具,它们能够获取旧数据库、新数据库并为您创建差异脚本,以便将旧数据库模式升级到新数据库模式。这适用于大多数场景,但您必须始终非常小心地在测试环境中测试结果。如果可能的话,最好是测试生产数据库的备份

    如果出现问题,如何避免数据丢失?只有一种非常简单的方法在进行任何更改之前备份数据库,并在出现任何问题时恢复旧数据库。备份甚至可以用SQL编写脚本。如果备份不成功,请不要接触生产数据库


    如何升级客户端数据库?您将使用相同的过程,但您会将其全部封装在某个安装包(.msi)中,例如使用WiX创建的安装包中。

    答案是:您有责任以满足需求的方式设计升级过程。没有自动魔法能帮你做到这一点

    该过程通常涉及到创建升级SQL脚本,该脚本将修改数据库结构,如果需要,还可以在主表结构更改时将数据移动到临时表中,以避免数据丢失。您还可以在一些特殊的表中维护数据库版本,并在运行更新之前进行检查,以确保更新脚本在预期的旧版本上运行

    有诸如RedGate SQL Compare和Visual Studio数据库工具(仅高级和最终版本)之类的工具,它们能够获取旧数据库、新数据库并为您创建差异脚本,以便将旧数据库模式升级到新数据库模式。这适用于大多数场景,但您必须始终非常小心地在测试环境中测试结果。如果可能的话,最好是测试生产数据库的备份

    如果出现问题,如何避免数据丢失?只有一种非常简单的方法在进行任何更改之前备份数据库,并在出现任何问题时恢复旧数据库。备份甚至可以用SQL编写脚本。如果备份不成功,请不要接触生产数据库


    如何升级客户端数据库?您将使用相同的过程,但会将其全部封装在一些安装包(.msi)中,例如使用WiX创建的安装包中。

    我的意思是在将来更新数据库结构(虽然应用程序不断发展,应用程序需求不断变化,但数据库也需要更新,但如何避免数据丢失的风险,以最佳、高效的方式发展……我的意思是在未来更新数据库结构(随着应用程序的发展和应用程序需求的变化,数据库也需要更新,但如何避免数据丢失的风险并以最佳、高效的方式发展。。。