现在我想我有一个常规表格,其中x和y坐标也将映射,也许可以从包含记录“点击”的坐标ID的查找表中删除.有人有更好的方法吗?
谢谢!
编辑:
这只是项目的开始,所以我的细节仍然有限,但我在多个表背后的主要原因是因为矩阵的大小和通用性是完全动态的,所以每个矩阵可能是不同的,它们将被绑定到用户
我也忘了提到x / y值的顺序很重要,这进一步支持了我为x y和值设置多个表背后的推理,由此我强烈假设需要知道每个单独的单元格很重要
例:
这个基本的例子(尽管是抽象的)在于关于餐馆的过程.这些行为是坐下来,订购食物,查看菜单,订购饮料,吃饭,支付等等的结果.订单的结果,交付的饮料,交付的食物,给出的变化.虽然看起来很简单,但考虑到每次出现的事情都会发生不同,在取出或自助餐的情况下也会变得复杂.在看到情况之间的差异时,行动和结果的顺序变得不可或缺
解决方法
每个矩阵的单独表格:
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,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
这些是标准的正常形式,几乎所有其他方式都没有很好地规范化.这些方法的一些优点:
>您不必填写每个单元格,只填写您正在使用的单元格.或者有一个默认值(0或“”)并跳过这些值.
>这是最灵活的方法,即使在“一体化”模型中,也不需要以任何方式将它们限制为相同的大小,并且很容易调整它们的大小.
>您可以轻松查询矩阵的内容,这在更紧凑的存储方法中越来越困难.
>“命中”或矩阵单元的任何其他方面很容易实现为行中的附加字段.如果您担心额外的空间,请将它们设置为Null,如果要分别查询/报告这些属性,请将它们编入索引.使用此型号也可以轻松改造此类功能.
主要缺点是数据开销通常存在很大的空间.许多人认为插入或检索新矩阵的开销也很高,但实际上有几种记录的技术可以使它非常快.
原文地址:https://www.jb51.cc/mssql/84405.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。