对此类问题的回答和讨论讨论了折叠表与透视表。
例如。
纸质演示文稿和有声电子演示文稿之间的唯一区别在于,后者的折叠桌结构更方便,而前者的枢轴桌结构...
我在谷歌上找不到关于这些术语的含义的任何信息(谷歌给出了关于蛋白质结构的结果)。
有人可以用例子解释这些术语的含义吗?
Money 由美元和美分组成,但存储为一个字段,因为美元和美分是相同值的属性,而不是值本身(您可以使用简单的数学方法在两者之间进行转换)。重量由磅和盎司组成,但出于同样的原因也存储在单个列中。
同样,看起来 x、y 和 z 维度实际上也只是一个值,具有三个属性,因为在应用程序中几乎不需要知道 x 没有 y 和 z(但您可能希望离散地查询它们)。
在 OOP 中,我们通常创建对象来处理特殊的原始类型,如日期、货币、重量和尺寸。但与其他基元不同的是,您不能简单地将维度相加并将它们填充到十进制列中并希望再次将它们取出。
您可以将维度存储在varchar
带有分隔符的 a 中,例如7;4,2;2
,但这会使对某些值的任何查询变得困难。IE。“获取具有最长(任何维度)边的记录”。
当然,将 x、y 和 z 存储在单独的十进制列中的传统方法也会遇到“获取最长边”查询的问题,因为数据库不会将它们视为一个值集合。(您必须获得每个结果中最长的一个,然后是三个结果中最长的一个)。
所以我正在研究似乎是为地图制作而设计的空间数据类型,但我发现设计用于在 3d 空间中保存坐标的数据类型可能同样适用于定义 3d 对象,因为它仍然是一个集合x、y 和 z 被视为一个字段中的一个内聚单位,能够分别查询坐标。
不幸的是,我很难找到有关使用空间类型的好信息,我不确定它们是否可以以这种方式使用。
空间类型可以用于存储 3 维对象的维度吗?