有很多方法可以做到这一点,我们需要更多的信息来更具体地确定最适合您的方法。但是,这是两种SOP方法:
每个矩阵都有一个单独的表:
CREATE TABLE YourMatrixName(
RowNo smallint NOT NULL,
ColNo smallint NOT NULL,
CellValue varchar](50) NULL,
CONSTRAINT [PK_Matrices] PRIMARY KEY CLUSTERED
([RowNo] ASC, [ColNo] ASC)
) ON [PRIMARY];
GO
CREATE UNIQUE NONCLUSTERED INDEX IX_YourMatrixName ON dbo.YourMatrixName
(ColNo, RowNo);
GO
或者,将所有矩阵放在一个表中:
CREATE TABLE Matrices(
MatrixName varchar(24) NOT NULL,
RowNo smallint NOT NULL,
ColNo smallint NOT NULL,
CellValue varchar(50) NULL,
CONSTRAINT [PK_Matrices] PRIMARY KEY CLUSTERED
([MatrixName] ASC, [RowNo] ASC, [ColNo] ASC)
) ON [PRIMARY];
GO
CREATE UNIQUE NONCLUSTERED INDEX IX_Matrices ON dbo.Matrices
(ColNo, RowNo);
GO
这些是标准范式,几乎所有其他方式都没有很好地规范化。这些方法的一些优点:
主要缺点是通常存在很大的数据开销空间。许多人认为插入或检索新矩阵也有高昂的开销,但实际上,有许多记录在案的技术可以使之快速运行。