您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在关系数据库中存储矩阵

在关系数据库中存储矩阵

有很多方法可以做到这一点,我们需要更多的信息来更具体地确定最适合您的方法。但是,这是两种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

这些是标准范式,几乎所有其他方式都没有很好地规范化。这些方法的一些优点:

主要缺点是通常存在很大的数据开销空间。许多人认为插入或检索新矩阵也有高昂的开销,但实际上,有许多记录在案的技术可以使之快速运行。

其他 2022/1/1 18:28:46 有409人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶