【发布时间】:2019-03-20 15:28:24
【问题描述】:
主表结构
CREATE TABLE [dbo].[Timetable] (
[location] NVARCHAR (128) NOT NULL,
[term] NVARCHAR (128) NOT NULL,
[employeeId] BIGINT NOT NULL,
[subjectCode] NVARCHAR (128) NOT NULL,
[lectureComment] NVARCHAR (MAX) NULL,
[lectureDate] DATE NOT NULL,
CONSTRAINT [PK_dbo.Timetable]
PRIMARY KEY CLUSTERED ([location] ASC, [term] ASC, [employeeId] ASC, [subjectCode] ASC));
这个表有超过 400k 行
我想将所有行备份到另一个数据库,并包括 AcademicYear 列,该列存储数据与学年列
时间表备份结构
CREATE TABLE [dbo].[TimetableBackup] (
[academicYear] NVARCHAR (128) NOT NULL,
[location] NVARCHAR (128) NOT NULL,
[term] NVARCHAR (128) NOT NULL,
[employeeId] BIGINT NOT NULL,
[subjectCode] NVARCHAR (128) NOT NULL,
[lectureComment] NVARCHAR (MAX) NULL,
[lectureDate] DATE NOT NULL,
CONSTRAINT [PK_dbo.TimetableBackup]
PRIMARY KEY CLUSTERED ([location] ASC, [term] ASC, [employeeId] ASC, [subjectCode] ASC));
TimetableBackup 表的结构应该是什么,以便我可以将我制作的 academicYear 数据存储为主列,以便以后的表数据搜索变得更快?
【问题讨论】:
-
这实际上取决于您执行的搜索类型 - 按哪些列搜索、提取哪些列、给定搜索返回的行数。您可能需要针对不同的搜索应用不同的衡量标准,但首先需要提供更多详细信息。
-
搜索全部取决于表的主键或 AcademicYear。如何存储使用列 AcademicYear 分隔的数据
-
请不要在这里使用像“十万”这样的印度词。其他国家的人不会理解的。
-
你的表不是真正的备份,而是时间表的历史?这样另一个表包含当前数据,而另一个表包含旧数据?
标签: sql sql-server sql-server-2008 asp.net-mvc-5 key