|
|
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
Как лучше всего хранить контактные данные? Какая должна быть структура таблицы (таблиц) для этого? Нужно хранить: 1) телефоны 2) email 3) адрес сайта 4) адрес реальный (почтовый) На первый взгляд, все можно хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". Но если капнуть глубже, то у них получается очень разная внутренняя структура. Если телефон, емаил, да и физический адрес могут быть "рабочими" и "домашними", то сайт вряд ли. А ещё физ. адрес может быть: "юридическим", "почтовым", "физическим" -- чего не скажешь про остальные контакты. Так же с физ. адресом может понадобиться хранить "геоинформацию" (например, координаты GPS). Дополнительные ограничения может накладывать вопрос о том, как будут использоваться данные. Например, нужно сделать выборку контактов по определенному городу. В таком случае, логичным будет разнести разные части адреса по разным полям. И вообще вынести его в отдельную таблицу. Что в таком случае делать с остальными контактными данными? Оставить их в одной куче (одной таблице) или по аналогии с адресом разнести по разным таблицам? Как, в таком случае, поступить с остальными типами контактов: skype, ICQ и пр.? Для них тоже сделать свои таблицы? Есть ещё вариант. Хранить всё в одной таблице, а всю структуру контакта представить в JSON формата или XML и в таком виде пихать в одно поле "контакт". Это значительно упростит структуру таблиц и позволит закодировать любое число типов контактов без изменения самой структуры хранения данных. Но в таком случае возникают очень большие проблемы с сортировкой данных и их фильтрацией. Очень жду помощи. Нужно срочно решить эту дилему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 09:39:20 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
Модераторам, Думаю эту тему можно перенести сюда: http://www.sql.ru/forum/967241-a/v-kakom-vide-hranit-neopredelennoe-chislo-poley-v-bd Прошу прощения, что сразу не нашел правильную ветку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2013, 10:25:44 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
AeliotМодераторам, Думаю эту тему можно перенести сюда: http://www.sql.ru/forum/967241-a/v-kakom-vide-hranit-neopredelennoe-chislo-poley-v-bd Прошу прощения, что сразу не нашел правильную ветку.Топик перенести в другой топик тут технически невозможно. Могу либо перенести топик в другой подфорум (в данном случае не актуально), либо удалить топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 10:18:19 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
AeliotНа первый взгляд, все можно хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". Но если капнуть глубже, то у них получается очень разная внутренняя структура. Если телефон, емаил, да и физический адрес могут быть "рабочими" и "домашними", то сайт вряд ли. А ещё физ. адрес может быть: "юридическим", "почтовым", "физическим" -- чего не скажешь про остальные контакты. Так же с физ. адресом может понадобиться хранить "геоинформацию" (например, координаты GPS). Юридический, почтовый и физический адреса - это три РАЗНЫХ типа контакта. То же и по остальным... если прёт - добавь ещё поле категории (ну или там группы) контактов в таблицу типов контактов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 11:07:03 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
miksoft, это надо в проектирование Бд. Там уже обсуждалось подобное и не раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 14:45:36 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
однако интересно. жду развязки! ТС: - еще учесть вариант логгирования: переехал твой "контр-агент". т.е. часть данных типа было по старому адресу, часть по новому. - смена людей на фирме - юр лицо то же, а адрес директора - уже другой. - телефон поменялся. - мыло сменили. и т.д. дата актуальности контакта. история изменений (правка). дальше ежели " капнуть глубже" ( гы! накапали уже литра на три)) пора копать начать ;) ) то : можно еще столкнуться с кучей вариантов контактов, которых не было ранее. вплоть до ид акка в фейсбуке))) видел вариант типа структуры - ид - тип данных - название вида контакта и таблицы - ид - структура _ ид - значение для контакта можно шо хочешь закодить и наращивать в процессе. только с поиском и логами сложнее, но зато решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 16:09:58 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
Arhat109miksoft, это надо в проектирование Бд. Там уже обсуждалось подобное и не раз.Формально, конечно, надо. Но жалко топикстартера. Там топик быстро зафлудят, а пользы может и не быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2013, 16:42:15 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
Решил все хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". При этом сам "контакт" представлен в JSON формате. Оказалось очень удобно. Это позволяет при желании, например, с номером телефона, сохранить признаки мобильный/стационарный, рабочий/личный, прицепить добавочный номер если надо; можно прицепить информацию с/по какое число номер актуален. И т.д. и т.п. Проблема с фильтрацией / сортировкой оказалась тоже вполне решаемой. Поскольку JSON в базе это просто строка, только строка структурированная, то её можно достаточно удобно нарезать на нужные кусочки и уже к ним применять фильтровку/сортировку. Да на это уходят какие-то дополнительные ресурсы системы, но пока всё в рамках приличного. Если будет какая-то критика по существу и/или предложения, то с удовольствием прислушаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 00:48:22 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
AeliotПри этом сам "контакт" представлен в JSON формате.Пока данных мало - сойдет. Когда счет пойдет на миллионы - будет тяжеловато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 00:58:58 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
AeliotРешил все хранить в одной таблице типа: "ИД-записи", "ИД-контрагента", "тип контакта", "контакт". При этом сам "контакт" представлен в JSON формате. Оказалось очень удобно. Ну конечно. Зачем вообще тогда поля, в жисоне еще пропишите несколько родителей и храните в одной строке. SQL ненаглядный. Проектировать всего лучше в xml, а потом уже переносить на эскуэль. Касательно вопроса. У вас просто куча справочников будет повешана на счет пользователя. Это, вроде, элементарно. Код_имейл - показывает на все его имейлы. Таблица имейлов для всех юзверов одинаковая, как и таблица Код_почтового_адреса и Код_телефона и тп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 05:46:44 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
Это потому что программисты, да, жисон нашефсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 05:47:44 |
|
||
|
Структура хранения контактных данных
|
|||
|---|---|---|---|
|
#18+
JSON это круто, :) но можно обойтись и без него если поле "тип контакта" длинное цклое - это 8*8бит или 8 байт можно каждому байту отвести своё значение и тогда .... к примеру второй байт = 1 означает телефоны , тогда первый - 1-личный мобильный,2- служебный мобильный, 3- домашний и т.д. 256 вариаций я думаю хватит второй байт =2 означает мыло, тогда первый- 1 - личное мыло, 2- служебное мыло, 3 -корпоративное мыло, 4 - мыло любовницы/любовника второй = 3 означает сайт, тогда первый - 1-корпоративный, 2-..... остались ещё 6 байт - врубай фантазию. этот вариант хорош тем что просто организовывать справочники, и дополнять их может юзер (наделенный правами) для хранения истории я использую два поля дата начата действия параметра и дата окончания дата окончания может быть либо NULL , либо 31-12-2100, и это обозначает что дата действующая. проще поставить дату завышенную проще проверка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2013, 17:44:30 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38355933&tid=1836300]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 292ms |

| 0 / 0 |
