powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Структура хранения контактных данных
13 сообщений из 13, страница 1 из 1
Структура хранения контактных данных
    #38354165
Aeliot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как лучше всего хранить контактные данные? Какая должна быть структура таблицы (таблиц) для этого?
Нужно хранить:
1) телефоны
2) email
3) адрес сайта
4) адрес реальный (почтовый)

На первый взгляд, все можно хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт".

Но если капнуть глубже, то у них получается очень разная внутренняя структура. Если телефон, емаил, да и физический адрес могут быть "рабочими" и "домашними", то сайт вряд ли. А ещё физ. адрес может быть: "юридическим", "почтовым", "физическим" -- чего не скажешь про остальные контакты. Так же с физ. адресом может понадобиться хранить "геоинформацию" (например, координаты GPS).

Дополнительные ограничения может накладывать вопрос о том, как будут использоваться данные. Например, нужно сделать выборку контактов по определенному городу. В таком случае, логичным будет разнести разные части адреса по разным полям. И вообще вынести его в отдельную таблицу.

Что в таком случае делать с остальными контактными данными? Оставить их в одной куче (одной таблице) или по аналогии с адресом разнести по разным таблицам? Как, в таком случае, поступить с остальными типами контактов: skype, ICQ и пр.? Для них тоже сделать свои таблицы?

Есть ещё вариант. Хранить всё в одной таблице, а всю структуру контакта представить в JSON формата или XML и в таком виде пихать в одно поле "контакт". Это значительно упростит структуру таблиц и позволит закодировать любое число типов контактов без изменения самой структуры хранения данных. Но в таком случае возникают очень большие проблемы с сортировкой данных и их фильтрацией.

Очень жду помощи. Нужно срочно решить эту дилему.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38354180
Aeliot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Модераторам,

Думаю эту тему можно перенести сюда: http://www.sql.ru/forum/967241-a/v-kakom-vide-hranit-neopredelennoe-chislo-poley-v-bd
Прошу прощения, что сразу не нашел правильную ветку.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38354735
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AeliotМодераторам,

Думаю эту тему можно перенести сюда: http://www.sql.ru/forum/967241-a/v-kakom-vide-hranit-neopredelennoe-chislo-poley-v-bd
Прошу прощения, что сразу не нашел правильную ветку.Топик перенести в другой топик тут технически невозможно. Могу либо перенести топик в другой подфорум (в данном случае не актуально), либо удалить топик.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38354799
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AeliotНа первый взгляд, все можно хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт".

Но если капнуть глубже, то у них получается очень разная внутренняя структура. Если телефон, емаил, да и физический адрес могут быть "рабочими" и "домашними", то сайт вряд ли. А ещё физ. адрес может быть: "юридическим", "почтовым", "физическим" -- чего не скажешь про остальные контакты. Так же с физ. адресом может понадобиться хранить "геоинформацию" (например, координаты GPS).
Юридический, почтовый и физический адреса - это три РАЗНЫХ типа контакта. То же и по остальным... если прёт - добавь ещё поле категории (ну или там группы) контактов в таблицу типов контактов...
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355238
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

это надо в проектирование Бд. Там уже обсуждалось подобное и не раз.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355383
Jude
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
однако интересно.

жду развязки!

ТС:

- еще учесть вариант логгирования: переехал твой "контр-агент". т.е. часть данных типа было по старому адресу, часть по новому.
- смена людей на фирме - юр лицо то же, а адрес директора - уже другой.
- телефон поменялся.
- мыло сменили.
и т.д.

дата актуальности контакта.

история изменений (правка).

дальше ежели " капнуть глубже" ( гы! накапали уже литра на три)) пора копать начать ;) ) то :
можно еще столкнуться с кучей вариантов контактов, которых не было ранее. вплоть до ид акка в фейсбуке)))

видел вариант типа структуры
- ид
- тип данных
- название вида контакта
и таблицы
- ид
- структура _ ид
- значение для контакта

можно шо хочешь закодить и наращивать в процессе.
только с поиском и логами сложнее, но зато решаемо.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355435
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109miksoft,

это надо в проектирование Бд. Там уже обсуждалось подобное и не раз.Формально, конечно, надо. Но жалко топикстартера. Там топик быстро зафлудят, а пользы может и не быть.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355932
Aeliot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил все хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". При этом сам "контакт" представлен в JSON формате. Оказалось очень удобно.
Это позволяет при желании, например, с номером телефона, сохранить признаки мобильный/стационарный, рабочий/личный, прицепить добавочный номер если надо; можно прицепить информацию с/по какое число номер актуален. И т.д. и т.п.

Проблема с фильтрацией / сортировкой оказалась тоже вполне решаемой. Поскольку JSON в базе это просто строка, только строка структурированная, то её можно достаточно удобно нарезать на нужные кусочки и уже к ним применять фильтровку/сортировку. Да на это уходят какие-то дополнительные ресурсы системы, но пока всё в рамках приличного.

Если будет какая-то критика по существу и/или предложения, то с удовольствием прислушаюсь.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355933
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AeliotПри этом сам "контакт" представлен в JSON формате.Пока данных мало - сойдет. Когда счет пойдет на миллионы - будет тяжеловато.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355960
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AeliotРешил все хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". При этом сам "контакт" представлен в JSON формате. Оказалось очень удобно.

Ну конечно. Зачем вообще тогда поля, в жисоне еще пропишите несколько родителей и храните в одной строке.

SQL ненаглядный. Проектировать всего лучше в xml, а потом уже переносить на эскуэль.

Касательно вопроса. У вас просто куча справочников будет повешана на счет пользователя. Это, вроде, элементарно. Код_имейл - показывает на все его имейлы. Таблица имейлов для всех юзверов одинаковая, как и таблица Код_почтового_адреса и Код_телефона и тп.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38355961
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это потому что программисты, да, жисон нашефсе.
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38357208
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JSON это круто, :)
но можно обойтись и без него
если поле "тип контакта" длинное цклое - это 8*8бит или 8 байт
можно каждому байту отвести своё значение и тогда ....
к примеру
второй байт = 1 означает телефоны , тогда первый - 1-личный мобильный,2- служебный мобильный, 3- домашний и т.д. 256 вариаций я думаю хватит
второй байт =2 означает мыло, тогда первый- 1 - личное мыло, 2- служебное мыло, 3 -корпоративное мыло, 4 - мыло любовницы/любовника
второй = 3 означает сайт, тогда первый - 1-корпоративный, 2-.....

остались ещё 6 байт - врубай фантазию.

этот вариант хорош тем что просто организовывать справочники,
и дополнять их может юзер (наделенный правами)


для хранения истории я использую два поля дата начата действия параметра и дата окончания
дата окончания может быть либо NULL , либо 31-12-2100, и это обозначает что дата действующая.
проще поставить дату завышенную проще проверка
...
Рейтинг: 0 / 0
Структура хранения контактных данных
    #38357215
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS
фильтрация при этом простая - наложить маску и всё.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Структура хранения контактных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]