SQL中的笛卡尔坐标系

时间:2015-04-30 15:13:50

标签: sql tsql

在MS SQL表中保存笛卡尔坐标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

至少有三列具有适合您的x,y和z值的精度。例如,

CREATE TABLE Coordinates
(
  ID int IDENTITY(1,1) not null PRIMARY KEY,
  X int not null,
  Y int not null,
  Z int not null
);

您可以根据需要添加其他列;例如,名为VARCHAR的{​​{1}}列可能会有所帮助。您可能还需要X,Y和Z上的索引:

Name

最后,如果你不想在那里复制,你可能想要也可能不想对该数据添加一个唯一约束(可能与名称列一起使用)。

我不确定你有什么其他选择;将坐标存储在一个列中显然是个坏主意(无论是尝试用文本分隔它们还是将它们存储为XML)。为什么?因为任何时候你必须在SQL中操作它们,它将更具挑战性/更昂贵,如果你的客户端需要这种格式,那么让SQL这样做是微不足道的,例如:

CREATE INDEX IX_Coordinates_XYZ ON Coordinates (X, Y, Z)

如果您需要对coordiantes进行分组,请添加另一列(例如,SELECT TOP 10 x,y,z FROM Coordinates FOR XML AUTO; 列)。使用数字(Regionint)效果会更好,但如果效果不是很好,您还可以使用bigintUNIQUEIDENTIFIER / VARCHAR关注的问题。