Хранение местоположений GPS в базе данных varchar поле

Эта ошибка была вызвана несовместимостью версии TLS на сервере. Клиент отправлял запрос с использованием TLSv1, и на сервере был включен TLSv1.2. Для рукопожатия SSL, во-первых, совместимость TLS. Клиент и сервер должны иметь одинаковые версии TLS.

После этого, если вы используете одностороннее SSL-рукопожатие, то сертификат с сервера должен быть распакован, и он должен быть установлен на клиентском компьютере. Таким образом произойдет SSL рукопожатие.

7
задан Martin Beckett 6 March 2009 в 19:34
поделиться

7 ответов

Можно использовать локатор Oracle. Свободное подмножество Oracle, Пространственной, чтобы сделать весь вид различных географических манипуляций и индексации пространственных данных: http://www.oracle.com/technology/products/spatial/index.html

С использованием типа столбца mdsys.sdo_geometry Вы может сохранить точки, облака точек, строк, полигонов и 3D вещей в базе данных.

4
ответ дан 6 December 2019 в 14:10
поделиться

Хотя Вы отметили это с Oracle, я полагал, что это будет полезно для любого MySQL использования: используйте пространственные расширения, чтобы хранить данные местоположения.

3
ответ дан 6 December 2019 в 14:10
поделиться

Используя специализированные поля с плавающей точкой или столбцы типа mdsys.sdo_geometry являются лучшим способом хранить эти данные. Если файл не будет иметь данных GPS, то те поля будут пусты, но почему это должно быть проблемой? Если файл мог бы иметь больше чем одно использование, связанное с точкой таблица детали.

Опции 1 и 2 являются 'универсальным' решением. Универсальные решения для базы данных являются медленными, потому что их более трудно индексировать, и собирающие статистические данные становятся более твердыми, таким образом, жизнь становится более трудной для оптимизатора запросов.

Также создание отчетов для сбора информации управления с инструментами как Cognos (бизнес-аналитика) по универсальному решению более трудно для Ваших пользователей.

Даты хранилища в поле даты, числа в числовом поле и географическая информация в географическом поле (mdsys.sdo_geometry).

Здесь объяснено, почему хранение даты как '20031603' в числовом поле замедляет вещи: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:77598210939534.

2
ответ дан 6 December 2019 в 14:10
поделиться

Мог это быть любой справкой: http://postgis.refractions.net

3
ответ дан 6 December 2019 в 14:10
поделиться

К опции 1 я могу сказать: Используйте формат обмена Gps (GPX). Это - стандартный способ сохранить точки GPS. Существуют опции отметить waypoints, дорожки и точку интересов.
Nontheless, не легко запросить.

1
ответ дан 6 December 2019 в 14:10
поделиться

Обычно, если у меня есть единая таблица (и я не утверждаю, что они не полезны), я склонен позволять диапазону типов данных для устройства хранения данных и enfore типы. Например.

CREATE TABLE MetaDataType (
  MetaDataID int IDENTITY(1,1) not null,
  MetaDataType varchar(10) not null,
  constraint PK_MetaDataType PRIMARY KEY (MetaDataID),
  constraint UQ_MetaDataType_TypeCheck UNIQUE (MetaDataID,MetaDataType),
  constraint CK_MetaDataType CHECK (MetaDataType in ('INT','CHAR','FLOAT'))
)

И затем таблица метаданных была бы похожа:

CREATE TABLE MetaData (
  FileID int not null,
  MetaDataID int not null,
  MetaDataType varchar(10) not null,
  IntValue int null,
  CharValue varchar(max) null,
  FloatValue float null,
  constraint PK_MetaData PRIMARY KEY (FileID,MetaDataID),
  constraint FK_MetaData_Files FORIEGN KEY (FileID) references /* File table */,
  constraint FK_MetaData_Types FOREIGN KEY (MetaDataID,MetaDataType) references MetaDataTypes (MetaDataID,MetaDataType),
  constraint CK_MetaData_ValidTypes ((MetaDataType = 'INT' or IntValue is null) and (MetaDataType = 'CHAR' or CharValue is null) and (MetaDataType = 'FLOAT' or FloatValue is null))
)

Так как самое главное - это 1) Вы храните для каждого объекта Метаданных ожидаемый тип и 2) Вы осуществляете это в таблице MetaData.

1
ответ дан 6 December 2019 в 14:10
поделиться

Править: см. комментарии для того, где это терпит неудачу.

Для ответа на основной вопрос, игнорируя любое обоснование позади него, Вы могли используемые функциональные индексы. Если Вы идете со своей опцией № 2, это должно быть просто.

Если Вы придерживаетесь № 1, необходимо будет просто добавить некоторый instr/substr вуду; например:

select 
    to_number(
      substr(
          '52.4343242,-1.32324'
        , 1
        , instr( '52.4343242,-1.32324', ',' ) - 1
      )
    ) as lattitude
  , to_number(
      substr(
          '52.4343242,-1.32324'
        , instr( '52.4343242,-1.32324', ',' ) + 1
      )
    ) as longitude
from dual;

Таким образом, Вы сделали бы что-то как:

create index lat_long_idx on metadata_table ( 
    to_number(
      substr(
          metadata_value
        , 1
        , instr( metadata_value, ',' ) - 1
      )
    )
  , to_number(
      substr(
          metadata_value
        , instr( metadata_value, ',' ) + 1
      )
    )
);
1
ответ дан 6 December 2019 в 14:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: