2015-04-30 3 views

ответ

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 с именем Name. Вы также, вероятно, хотите индекс на X, Y и Z:

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

Наконец, вы можете или не хотите, чтобы добавить ограничение уникальности этих данных (возможно, в сочетании с колонной имя), если вы не» t хочу дубликатов там.

Я не уверен, какие другие варианты вы имели в виду; сохранение координат в одном столбце, очевидно, было бы плохой идеей (пытаться лишить их текстом или хранить их как XML). Зачем? Потому что в любое время вы должны манипулировать ими в SQL будет более сложным/дорого, и если ваш клиент нуждается в них в таком формате это тривиально, чтобы сделать SQL сделать это, например:

SELECT TOP 10 x,y,z FROM Coordinates FOR XML AUTO; 

Если вам необходимо сгруппировать координаты, добавьте еще один столбец (например, столбец Region). Использование числа (int или bigint) будет работать лучше, но вы также можете использовать UNIQUEIDENTIFIER или VARCHAR/NVARCHAR, если производительность не такая уж большая проблема.

+0

Возможно, потребуется сохранить несколько координат для одного идентификатора (например, региона), с которым вы советуете, таблицы отношений или тип геометрии? – tungula

+0

Отредактировано для добавления этой информации. Просто добавьте еще один столбец (или столько столбцов, сколько вам нужно). Однако вы можете найти, что SQL не будет вашим лучшим выбором здесь, если вы собираетесь использовать данные этого региона для графического рендеринга в реальном времени - SQL может хорошо работать для хранения/загрузки сохраненного состояния. –

Смежные вопросы