我目前正在研究的一个程序构建多个不同大小的3D数组(例如50x50x200
,30x30x100
)。
我需要在SQL中存储这些数组,这样我就可以再次将它们拉出来并显示数组。我遇到了这个线程,它描述了存储3D数组的最佳方式。我将使用这个数据结构。
另一件要提到的事情是,许多相同大小的数组将被创建,例如1050x50x200
。我的问题是如何去存储这些数组。我对这个问题思考了很多,然后得出了一些结论:
- 每个数组索引一个ID
(x,y,z,ID)
- 每个数组大小一个表,例如
50x50
表,30x30
表等,(w,x,y,z,ID)
中有一个4D数组 - 1在
(w,x,y,z,size,ID)
中包含5D数组的巨大表- size是指该数组是否为30x30
存储这些数组的最佳方式是什么?
编辑:
- 数组中的所有元素将被一次检索; 不需要在这些数组中更新-一旦它们被保存在SQL中,它们将不会改变;
- 原始插入后,类似于更新,数组不会改变;
最好的方法取决于您将如何操作它们。如果您只需要在SQL中存储数组而不做任何操作,那么您就是在存储对象。
您可以使用单个列将整个对象存储为varbinary
或varchar()
。对于数据库来说,它们看起来就像一堆比特,这对于存储和检索来说是很好的。
如果你要对数组做任何操作,那么你会想要一个更原生的解决方案。这可能涉及两个表,一个arrays
表定义每个数组,另一个arrayElements
表定义数组中的每个元素一行,所以有五列:
- id数组。
x
,y
,z
坐标- 元素值。