Какой тип поля для координат карт?

Тема в разделе "Базы данных", создана пользователем danneo, 10 фев 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Почитал в инете, толком не понял. В каждом поле хранится одна координата (ширина либо долгота). Предлагают использовать два варианта:
    1. Spatial float (в MySQL не нашел такой тип)
    2. Double
    Я решил использовать DOUBLE . Указал при создании поля 9,6. И проблема стала заключаться в кол-ве знаков. Например, координата "59,51548" запишется, как "59,515480". Больше знаков обрежется. Яндекс рекомендует использовать после запятой 6 знаков. Но есть координаты с меньшим кол-ом знаков. Как быть? MySQL добавляет в конце "0" и адрес уже не тот... :conf:
    p.s. с типом double никогда не работал. Мало чего знаю...
     
  2. jDony

    jDony Создатель

    Регистр.:
    25 янв 2014
    Сообщения:
    41
    Симпатии:
    40
    Я бы лично в VARCHAR хранил.
    Но это сугубо мое мнение. Не люблю работать с числами с точкой, так как никогда не знаешь как их реализуют в конкретной БД\Компиляторе\Процессоре.
    Много головняка поимел с float, double и т.д.
    Поэтому теперь предпочитаю подобные данные(за исключением цен) хранить в VARCHAR
     
  3. Bezhev

    Bezhev

    Регистр.:
    26 дек 2012
    Сообщения:
    362
    Симпатии:
    123
    пиши лучше в варчар или текст, можешь еще преждевременно запаковать в json.
    так удобне храниить координаты и никаких проблем с пол-вом символов нет.
     
  4. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.445
    Симпатии:
    113
    Что за проблемы, например?
     
  5. jDony

    jDony Создатель

    Регистр.:
    25 янв 2014
    Сообщения:
    41
    Симпатии:
    40
    Как пример - то что вы писали в первом посте.
    Потом еще конвертирование float в int например, или в string.
    Сравнение float\double порой может вызвать проблемы, из-за неправильного округления.
    В общем не заморачивайся, и храни в VARCHAR
     
Статус темы:
Закрыта.