Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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_Sql Server 2008 - Fatal编程技术网

Sql 拿一张大桌子,把它分成更小更容易维护的桌子?

Sql 拿一张大桌子,把它分成更小更容易维护的桌子?,sql,sql-server-2008,Sql,Sql Server 2008,我有一个大的数据库表,跟踪目前正在生产的产品,一个人的医疗证明:日期过期exp,公司,如果我们有它的文件和一个数字副本的位置。我们跟踪许多成长类别,如心肺复苏、儿童心肺复苏、AED、救生员等 如何使其更易于管理,以及如何通过网络迁移现有数据?我是运行SQLServer2008的coldfusion web应用程序 CREATE TABLE [dbo].[mod_StudentCertifications]( [certificationID] [int] IDENTITY(1,1) NO

我有一个大的数据库表,跟踪目前正在生产的产品,一个人的医疗证明:日期过期exp,公司,如果我们有它的文件和一个数字副本的位置。我们跟踪许多成长类别,如心肺复苏、儿童心肺复苏、AED、救生员等

如何使其更易于管理,以及如何通过网络迁移现有数据?我是运行SQLServer2008的coldfusion web应用程序

CREATE TABLE [dbo].[mod_StudentCertifications](
    [certificationID] [int] IDENTITY(1,1) NOT NULL,
    [profileID] [int] NOT NULL,
    [cprAdultExp] [datetime] NULL,
    [cprAdultcompany] [nvarchar](250) NULL,
    [cprAdultImage] [nvarchar](4000) NULL,
    [cprAdultOnFile] [bit] NULL,
    [cprInfantChildExp] [datetime] NULL,
    [cprInfantChildcompany] [nvarchar](250) NULL,
    [cprInfantChildImage] [nvarchar](4000) NULL,
    [cprInfantChildOnFile] [bit] NULL,
    [cprFPRExp] [datetime] NULL,
    [cprFPRcompany] [nvarchar](250) NULL,
    [cprFPRImage] [nvarchar](4000) NULL,
    [cprFPROnFile] [bit] NULL,
    [aedExp] [datetime] NULL,
    [aedcompany] [nvarchar](250) NULL,
    [aedImage] [nvarchar](4000) NULL,
    [aedOnFile] [bit] NULL,
    [firstAidExp] [datetime] NULL,
    [firstAidcompany] [nvarchar](250) NULL,
    [firstAidImage] [nvarchar](4000) NULL,
    [firstAidOnFile] [bit] NULL,
    [emtExp] [datetime] NULL,
    [emtcompany] [nvarchar](250) NULL,
    [emtImage] [nvarchar](4000) NULL,
    [emtOnFile] [bit] NULL,
    [waterSafetyInstructionExp] [datetime] NULL,
    [waterSafetyInstructioncompany] [nvarchar](250) NULL,
    [waterSafetyInstructionImage] [nvarchar](4000) NULL,
    [waterSafetyInstructionOnFile] [bit] NULL,
    [bloodPathogensExp] [datetime] NULL,
    [bloodPathogenscompany] [nvarchar](250) NULL,
    [bloodPathogensImage] [nvarchar](4000) NULL,
    [bloodPathogensOnFile] [bit] NULL,
    [oxygenAdminExp] [datetime] NULL,
    [oxygenAdmincompany] [nvarchar](250) NULL,
    [oxygenAdminImage] [nvarchar](4000) NULL,
    [oxygenAdminOnFile] [bit] NULL,
    [lifegaurdingExp] [datetime] NULL,
    [lifegaurdingcompany] [nvarchar](250) NULL,
    [lifegaurdingImage] [nvarchar](4000) NULL,
    [lifegaurdingOnFile] [bit] NULL,
    [wildernessResponderExp] [datetime] NULL,
    [wildernessResponderCompany] [nvarchar](250) NULL,
    [wildernessResponderImage] [nvarchar](4000) NULL,
    [wildernessResponderOnFile] [bit] NULL,
    [certNotes] [nvarchar](4000) NULL,
    [isActive] [bit] NULL,
    [certClassRegistered] [bit] NULL,
    [lifeguardInstrcutorExp] [datetime] NULL,
    [lifeguardInstrcutorCompany] [nvarchar](250) NULL,
    [lifeguardInstrcutorImage] [nvarchar](4000) NULL,
    [lifeguardInstrcutorOnFile] [bit] NULL

请注意,您的所有证书都有相同的重复信息列:过期、公司、图像、OnFile?这是一个很大的线索,说明您需要进一步规范化您的设计

在一个可以更改模式的完美世界中,我将创建一个通用的学生/证书表,将这些公共元素作为列,一个外键指向另一个表,该表列举了水安全、荒野等证书,另一个外键将学生链接到这些证书。比如:


请注意,您的所有证书都有相同的重复信息列:过期、公司、图像、OnFile?这是一个很大的线索,说明您需要进一步规范化您的设计

在一个可以更改模式的完美世界中,我将创建一个通用的学生/证书表,将这些公共元素作为列,一个外键指向另一个表,该表列举了水安全、荒野等证书,另一个外键将学生链接到这些证书。比如:


是否有一种简单的方法来移动数据?这取决于移动数据时预期会发生什么。生成新表后生成脚本很简单,但是应用程序是否可以脱机,以便在数据移动时用户不会影响更改?移动数据可以脱机。@Snow_Mac:那么,正如Aaron所指出的,移动数据的脚本应该很简单。更大的痛苦将是重构现有代码以使用新的模式设计。是否有一种简单的方法来移动数据?这取决于移动数据时预期会发生什么。生成新表后生成脚本很简单,但是应用程序是否可以脱机,以便在数据移动时用户不会影响更改?移动数据可以脱机。@Snow_Mac:那么,正如Aaron所指出的,移动数据的脚本应该很简单。更大的痛苦将是重构现有代码以使用新的模式设计。