|
|
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. помогите реализовать структуру базы. Есть два типа адресов: Адрес сотрудника Адрес фирм-клиентов Как будет поступить логичнее реализовать, разделить их на две независимые друг от друга таблицы, или же сделать их в одной. И по поводу реализации того самого справочника адресов. Тип адреса: Страна, Регион, Район, Населенный Пункт, Улица, номер дома, квартира/офис Набросок структуры прилагается Также было предложено,сделать общую таблицу адреса, Справочник адреса id id_strana - Ссылка на справочник стран id_region - Ссылка на справочник региона id_raion - Ссылка на справочник районов id_city - Справочник городов id_street numer kvartira В свою очеред справочники стран, региона, районов, городов, это таблицы с полями id, name И ко всему этому безобразию необходимо реализовать древовидную структуру адреса Россия - Самараская область - Тольятти - Автозаводской район - Центральный и так далее. запутался уже в составлении данного справочника. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 11:33 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
а вам это реально нужно? может хранить текстом адрес и подгружать из КЛАДР классификатор? кстати, вы уверены, что вы сможете так учесть иностранные адреса? С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 11:39 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Предлагалось держать адреса сотрудника или организации полным текстом в базе. Не желают такого. Хотят именно разделения. Также хотят разделения Фамилий, Имен, отчеств по разным таблицам, с целью их склонения по падежам вручную, но это уже совсем другая история.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 11:50 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Dindilin, Интересно, что за мода такая? Тут в параллельной ветке Нелепый вопрос для опытных профессионалов тоже придумали сущность "адрес" и хотят что-то делать с ее id. Чем принципиально отличаются "типы" адресов сотрудников и фирм-клиентов? Храните id_street, numer (дома, надо полагать?) и kvartira прямо в таблицах с атрибутами сотрудников и клиентов. Нарисовання вами структура смотрится красиво, но не учитывает кучу нюансов территориального-административного деления даже внутри РФ (см. КЛАДР), не говоря уже о мировых масштабах. Кроме справочника улиц, я бы сделал справочник населенных пунктов и справочник территориальных образований, соответствующе справочники типов н.п., тер. образований, ну и улиц, если уж так приспичило Связи подчиненности между территориальными образованиями - ссылками на id родительских объектов (колонка id_ParentRegion). Ну, страны можно выделить в отдельную таблицу, если глобальный масштаб так необходим. С такой структурой тоже не просто работать, но она, хотя бы, не требует переделки при появлении нового уровня территориального деления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 12:38 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Dindilin, Только сейчас разглядел: а telephon зачем в таблице "адрес"?!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 12:45 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracs, отредактировал схему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 13:34 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
для чего вы это делаете? хотелось бы узнать С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 13:35 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracs, Нарисовання вами структура смотрится красиво, но не учитывает кучу нюансов территориального-административного деления даже внутри РФ (см. КЛАДР), не говоря уже о мировых масштабах. Да, вот меж Город ,Регион, Улица, может также находится Район, и поулчается что нужна еще одна таблица, а уж если дерево потом из этого безобразия строить,можно будет рехнутся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 13:36 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Naf, делается это для выведения данных по определенному адресу, городу,региону. И для создания отчетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 13:39 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Либо вот такой вариант по которому возможно будет отстроить дерево, но логика построения лишена смысла будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 13:55 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Dindilinbaracs, отредактировал схему Отредактировали ее, таки, вы Я не предлагал справочник наименований (я правильно понял назначение таблицы Socr_base?), ну и бог с ним. "Мишку мучает вопрос:" (c) зачем же все-таки нужна таблица "adres"? Почему нельзя street_id, nomer и kv вставить прямо в таблицы firm и sotrudnik? Кстати, колонки nomer и kv делайте символьными. Уж номер дома-то точно: бывают литеры, корпуса, строения... Правда, корпуса и строения лучше вынести в отдельные колонки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 14:07 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Ну как кажется, что лучше хранить все данные об адресах в одной таблице, чем в разных. а а таблице фирмы и сотрудники хранить ссылку на адрес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 14:30 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Уж номер дома-то точно А ещё бывают, например, такие адреса: "ул. Уличная, дом 13, кв.666, комната 1 ". Как он в Вашу схему впишется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:09 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
tanglirУж номер дома-то точно А ещё бывают, например, такие адреса: "ул. Уличная, дом 13, кв.666, комната 1 ". Как он в Вашу схему впишется? Ага, давайте еще койко-место укажем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 17:12 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
tanglir, для таких дел есть поле description =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 20:32 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Naf а вам это реально нужно?+1 Предлагаю таки танцевать от печки Зачем нужен адрес - для почты? тогда идите на почту, берите их базу, подгоняйте под их требования Для отчетов в налоговую - тут кладр рулит Для поиска сотрудников курьерами - тогда добавляйте всякую доп инфу типа "звонить три раза, у соседа злая собака, буду пьян не будите" Далее: кто сказал что адрес у сотрудника или организации может быть один и только один, как минимум почтовый, адрес регистрации, адрес фактического проживания и т.п. Для отчетов - тогда адрес не применим ибо не факт. дешевле добавить однозначное доп поле для группировки по отчетам - продажи по городу, району, области авторХраните id_street, numer (дома, надо полагать?) и kvartira прямо в таблицах с атрибутами сотрудников и клиентов. Смысл выделения в отдельную таблицу адресов иногда есть, но в каждом случае решение надо принимать самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2009, 21:29 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
SERG1257Зачем нужен адрес - для почты? тогда идите на почту, берите их базу, подгоняйте под их требования Для отчетов в налоговую - тут кладр рулит А налоговая ведет КЛАДР разве не совместно с почтовой службой? SERG1257Смысл выделения в отдельную таблицу адресов иногда есть, но в каждом случае решение надо принимать самостоятельно. Само собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 10:08 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
1) Если мы упоминаем КЛАДР то давайте прочитаем определение для чего он создан :) 2) Я бы с очень большим напрягом согласился с предложенной автором структурой если бы он еще а) не претендовал на международность (кантоны, земли, префекуты и те.де) б) объяснил бы мне правильно ли я написал адреса Страна (Россия), Регион (Москва), Район (Калининский), Населенный Пункт (Москва), Улица (Героев Автоматизации), номер дома (д. 23-34-46 корпус 2A строение Б2) , квартира/офис (14/2) Оно из более-менее коректных решений представление адресного пространства в виде дерева с различными типами узлов (город, район, регион, улица, дом, корпус и т.д.), кеширование полного адреса каждого узла в текстовой и возможно какой-либо структуированой форме (например в виде XML) дабы текстовый адрес можно было разобрать P.S. Cписок реальных адресов на примере СПБ 1) Г.САНКТ-ПЕТЕРБУРГ, ШУВАЛОВО, ПЕРВОМАЙСКАЯ УЛИЦА, ДОМ 6А, ЛИТЕРА А 2) Г.САНКТ-ПЕТЕРБУРГ, ПОСЕЛОК ЛЕВАШОВО, ЛЕВАШОВО-2 , ДОМ 1, ЛИТЕРА А 3) Г.САНКТ-ПЕТЕРБУРГ, ПОСЕЛОК ПАРГОЛОВО, ОСИНОВАЯ РОЩА, ОВРАЖНЫЙ ПЕРЕУЛОК, ДОМ 6 4) Г.САНКТ-ПЕТЕРБУРГ, КАНОНЕРСКАЯ УЛИЦА, ДОМ 6-8-10 , ЛИТЕРА А ______________________________________________________ Давайте считать обступившее нас со всех строн коричневое море шоколадным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 12:14 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
А ведь одна и таже улица может встречатся в разных городах г. Самара, ул. Строителей г. Сызрань, ул. Строителей тогда получается что запись в улицах, Строителей будет не одна а несколько? а если такая улица, будет в 10 городах.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 12:58 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
DindilinА ведь одна и таже улица может встречатся в разных городах г. Самара, ул. Строителей г. Сызрань, ул. Строителей тогда получается что запись в улицах, Строителей будет не одна а несколько? а если такая улица, будет в 10 городах.... Да. Это разные объекты с одинаковым наименованием. Сколько в бывших странах развитого социализма улиц Ленина, даже старшно подумать Вопрос в том, на сколько важен этот факт для решаемой вами задачи. Если, например, надо хранить историю переименований, то важен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 14:22 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Мм, Господа, а почему бы не использовать простой иерархический справочник? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. TAdr.id->SType В справочнике SType указываем всевозможные варианты типов элементов адреса (от угла в комнате до континентов) и все - в такую структуру почти без избыточности можно поместить адреса от стр Россия, гор. Москва, ул Ленина. дом 1 до стр Россия, Московская обл., Мухагорский район, поселок Абыкакой, проезд Деревенских, дом 7, дробь 2, корпус 1, кв 2, а, комната 17, б. p.s. гдет валялся пакет для импорта кладра в такую структуру :о) То, что обработка такой структуры в основном только рекурсией - нас это не волнует (это волнует программистов). Да и во многих СУБД есть средства работы с иерархическими справочниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 17:55 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
buhBot, привлекательная структура =) Таким образом id_adres_firm из таблицы Полного адреса фирмы будет равен TAddr.Id и уже по нему собирать полный адрес? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 14:01 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
DindilinbuhBot, привлекательная структура =) Таким образом id_adres_firm из таблицы Полного адреса фирмы будет равен TAddr.Id и уже по нему собирать полный адрес? Совершенно верно. Адрес собирается с конца (квартира->дом->корпус-> и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 17:10 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
buhBotТо, что обработка такой структуры в основном только рекурсией - нас это не волнует (это волнует программистов). Чтоб я так жил! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2009, 11:54 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
tanglirУж номер дома-то точно А ещё бывают, например, такие адреса: "ул. Уличная, дом 13, кв.666, комната 1 ". Как он в Вашу схему впишется? Бывает и просто "д. Сусай", без улиц и домов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 10:20 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracsbuhBotТо, что обработка такой структуры в основном только рекурсией - нас это не волнует (это волнует программистов). Чтоб я так жил!При ограничении максимального уровня вложенности можно вместо рекурсии использовать несколько left join Кроме того, можно для каждого элемента держать полное собранное название - будет проще при типичных выборках. По моему, это проще, удобнее и универсальнее, чем ваша структура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 11:24 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
авторКроме того, можно для каждого элемента держать полное собранное название - будет проще при типичных выборках. если честно то это хотя и быстрее но требует доп гемороя поддержания актуальности (изменение любого элемента иерархии и синхронизация этих элементов с последующим отслеживанием текущего пложения объекта учета отностильно их при репликациях с внешними источниками) и отслеживания количества уровней иерархии ксткати (был "улица/дом/офис" а стал "улица/дом/корпус/этаж/офис" скажем) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 11:30 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Last1CmenавторКроме того, можно для каждого элемента держать полное собранное название - будет проще при типичных выборках. если честно то это хотя и быстрее но требует доп гемороя поддержания актуальности (изменение любого элемента иерархии и синхронизация этих элементов с последующим отслеживанием текущего пложения объекта учета отностильно их при репликациях с внешними источниками) и отслеживания количества уровней иерархии ксткати (был "улица/дом/офис" а стал "улица/дом/корпус/этаж/офис" скажем)Ну, это уж вам выбирать. В многих СУБД, например, в MSSQL, это можно сделаеть одним апдэйтом в триггере. Зато выборки потом будут проще. Представьте, иначе при любых выборках адресов для фирм или сотредников нужно будет всегда делать кучу джойнов или сложный рекурсивный запрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 11:54 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
авторПредставьте, иначе при любых выборках адресов для фирм или сотредников нужно будет всегда делать кучу джойнов или сложный рекурсивный запрос... alexeyvg, да знаю знаю потому и озвучил проблему т.к. всё никак не могу полностью отдать предпочтение джойнам и рекурсии или полным путям в конечных элементах (у мну 1це а там струтура иерархий довольно неудобная для прямых запросов к БД) и там и там свой геморой хотя конечно второй вариант на голову шустрее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 12:00 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Last1Cmenхотя конечно второй вариант на голову шустрее :)При этом этот сложный код получения полного текста адреса нужно будет написать и поддерживать только в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 12:06 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
alexeyvg, ну если тригером отслеживать только запись конечного элемента (там и апдейтить всё что есть) то наверное да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 12:09 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Last1Cmenalexeyvg, ну если тригером отслеживать только запись конечного элемента (там и апдейтить всё что есть) то наверное даМожно триггером апдэйтить все поддеревья ниже изменённых элементов. Тут ещё от СУБД и её версии зависит. Если у вас 1с, знасит mssql Если mssql версии от 2005, то это один апдэйт, если версия меньше, то нужно сначала в цикле несколькими итерациями собрать поддеревья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 12:45 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
авторто нужно сначала в цикле несколькими итерациями собрать поддеревья кстати тоже интересный вопрос... циклом (тогда надо знать количество уровней) или рекурсией (тогда тупим безбожно)... если циклом то надо ведь предварительно узнать количество уровней а это рекурсия как варинат кроме полного адреса ещё и уровень пописывать (апдейтить) в сам элемент справочника (объект учета) (в той же 1це есть Уровень() но это штатно и небыстро) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 12:52 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Last1Cmenкстати тоже интересный вопрос... циклом (тогда надо знать количество уровней) или рекурсией (тогда тупим безбожно)... если циклом то надо ведь предварительно узнать количество уровней а это рекурсияДля цикла не нужно знать количества уровней. Он сам остановится на максимально нужном уровне Например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 14:11 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
авторif @@rowcount = 0 break мдя... зубрить мне ещё и зубрить кстати а конструкция авторwhile 1 = 1 не страшно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 14:15 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
Last1Cmenкстати а конструкция авторwhile 1 = 1 не страшно ?Всегда так писал - наработанный штамп :-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 14:39 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
alexeyvgПри ограничении максимального уровня вложенности можно Ниже вы про универсальность говорите... alexeyvgПо моему, это проще, удобнее и универсальнее, чем ваша структура. Проще и универсальнее, в данной ситуации, взаимоисключающие понятия. То есть, рисовать структуру БД конечно проще. А вот, работать с ней... alexeyvgКроме того, можно для каждого элемента держать полное собранное название ... В многих СУБД, например, в MSSQL, это можно сделаеть одним апдэйтом в триггере. Что выполнение триггера в MSSQL - тяжелая операция, изменение из триггера других таблиц (кроме той, с которой он связан) приводит к проблемам с блокировками и, наконец, триггеры весьма затрудняют понимание заложенной в БД бизнес-логики, вас видимо, тоже не волнует. Попробую пояснить свое разбиение на таблицы. Улица - основной объект адресации. И этих объектов будет больше всего. Дома, квартиры и т.д. без крайней необходимости в базу пихать не стоит. Сейчас, даже в кризис, жилые дома и прочие строения появляются и исчезают как грибы. Уследить за этим "хозяйством" (т.е. поддерживать базу в актуальном состоянии) очень сложно. Наконец, с точки зрения привязки к карте (Чем черт не шутит? Вдруг понадобится?) - это линейный объект с присущими именно ему атрибутами. Да, конечно, кроме улиц бывают еще кварталы, микрорайоны, населенные пункты вообще без улиц... Но подавляющее большинство населения обитает все-таки на улицах. Как быть с исключениями, надо решать в контексте поставленной задачи. Населенные пункты я предложил вынести в отдельную таблицу т.к. это тоже отдельный класс объектов со своими атрибутами (важны они или нет в данной систме, не знаю), их тоже относительно много (смейтесь-смейтесь) и, с точки зрения картографа - это либо точечный (чаще), либо площадной объект. Да есть огромные города, имеющие внутреннее территориальное деление и, с административной точки зрения, соответствующие регионам. Куда их удобнее "положить" тоже зависит от конкретной задачи. Наконец регионы . Это - территории, которые входят одна в другую как матрешки. Здесь не обойтись без поддержания иерархии. Но регионов вместе со всем их "содержимым" (областями, землями, округами, районами, префектурами, сельсоветами и т.д.) на порядки меньше чем улиц и населенных пунктов. Соответственно, и ковыряться в этой иерархии будет, хоть и не на порядки, но легче (может быть, даже не придется искуственно ограничивать кол-во уровней вложенности ;-) ). Ну, и опять таки, у регионов могут быть свои специфические атрибуты. Отдельную таблицу стран можно рассматривать как каприз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 16:33 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracsЗдесь не обойтись без поддержания иерархии. Осспади! "Поддержания" - дело к вечеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2009, 16:38 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracs, авторОтдельную таблицу стран можно рассматривать как каприз Учитывая что в организации используются только пару стран, Россия, Украина, то смысл от такой таблицы думаю не велик будет =) Вот только как при запросе получить полный адрес из иерархической структуры.. Сверять до тех пор пока parentid не будет равен 0 ? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2009, 21:34 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
DindilinВот только как при запросе получить полный адрес из иерархической структуры.. Сверять до тех пор пока parentid не будет равен 0 ? =) Почему бы и нет? Пример функции на T-SQL, вычисляющей уровень товарной категории в классификаторе по коду категории (CategoryId - первичный ключ, ParentCategoryId - ссылка на первичный ключ родительской категории): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Сложность в другом: не все объекты, "вытащенные" таким образом из таблицы, могут понадобиться для формирования адреса. Пример для Москвы. Адрес: г. Москва, ул. Петровка, д. 38. Что это - Центральный административный округ и муниципальный район Тверской, указывать не надо. Но, если использовать полную иерархию, они "вылезут". Я вижу два пути: 1) просто отказаться от хранения информации по территориальному делению Москвы; 2) каким-то образом фильтровать "ненужные", при формировании адреса, территориальные образования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2009, 11:08 |
|
||
|
Проектирование справочника адресов клиентов,сотрудников
|
|||
|---|---|---|---|
|
#18+
baracsСложность в другом: не все объекты, "вытащенные" таким образом из таблицы, могут понадобиться для формирования адреса. Пример для Москвы. Адрес: г. Москва, ул. Петровка, д. 38. Что это - Центральный административный округ и муниципальный район Тверской, указывать не надо. Но, если использовать полную иерархию, они "вылезут".Если использовать иерархический справочник адресов, то не вылезут - в нём муниципальных районов не будет. Это в справочнике административного деления есть округа и районы, а в адресном нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 11:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1543019]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 471ms |

| 0 / 0 |
