Как хранить в БД номера домов?

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

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

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.454
    Симпатии:
    113
    Подскажите, как лучше всего хранить номера домов в адресе фирмы?
    Я хотел сделать поля для номера дома и поле для строения (корпус и т.п.). Но в москве сложные номера домов, например: 5/6с3-2
    Даже не знаю чего это значит... Наверно, 5 дробь 6, строение 3. А 2 не знаю чего такое... :D
    Мне кажется, хуже уже не найти :)
    Второй же вариант такой: создать одно поле для всего номера, туда пихать все, что угодно.
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.197
    корпус, строение, владение, дробь (для дом на углу улиц) ещё кто-то там, не помню.

    Храни как варчар 255

    Тебе вообще зачем адреса? Что потом из них выбирать и т.д. - от этого тип зависит,,,
     
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.529
    Симпатии:
    1.388
    Для ответа как хранить надо для начало ответить на вопрос зачем это хранить :) А если точнее то как эти данные будут использоваться.
    Если есть шанс, что в скрипте тебе часто потребуется искать не просто по номеру дома, но и строение или вот этот непонятный префикс "-2" и формат записи может различаться, то имеет смысл разбить на разные поля.
    Иначе сделай достаточно длинный varchar - этого должно хватить. Поиск дома по like '5/6%'. А более сложный поиск по like или REGEXP. Например, при необходимости найти все дома имеющие "строение 3", при условии одинакового формата, можно будет добавить в запрос что-то типа
    Код:
    WHERE house_num REGEXP "[0-9/]{1,10}c3"
    
     
  4. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.454
    Симпатии:
    113
    функционал, насколько я пока представляю, заключается в выводе списка фирм и их адреса. Поиск по строениям не будет. Даже по номеру вряд ли... если только по улице.
    Получается, что проще в varchar
     
Статус темы:
Закрыта.