|
|
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Есть данные которые можно хранить в одной таблице как иерархические или разбить на несколько таблиц. Я так думаю, что все зависит от конкретики. Например, если речь идет о географических точках, то можно сделать и разные таблицы (ТОЧКИ, РАЙОНЫ, ОБЛАСТИ). Т.к. уровней всего 3. Но там где пока неизвестно сколько таких уровней и их может быть много, лучше применить иерархический способ. Но это пока только в теории. Если кто знает как лучше и какие подводные камни могут быть - прошу высказаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 22:32 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Прочитал 3 раза. Все-равно ничего не понял. О чем речь-то? Про Spatial Data? Нет - делай дерево... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 06:19 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Пардон, а что такое Spatial Data? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 06:40 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
даже с районами, областями и нас-пунктами не все так хорошо. бо есь пункты областного подчинения (т.е. не так лехко развести вторичные ключи при раздельном хранении). дерево и тут, имхо, часто удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 10:59 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
к минусам можно отнесть то, что не всякая субд поддерживает иерархические запросы. Придется либо писать рекурсивные процедуры, либо отягощаться дополнительными исхитрениями с тем, чтобы, к примеру, получить всю иерархию некоего узла стандартным SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 11:03 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДПардон, а что такое Spatial Data? Картография. (ГИС) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:31 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДПлюсы и минусы иерархического способа хранения данных Имхо критерий достаточно прост. Нужно сравнить количество и сложность операций, выполняемых "со всеми строками данных независимо от конкретного типа" и количество выполняемых поотдельности с "городами", "районами" и так далее. Если много общего - удобно хранить в общей таблице. Если большинство специфичного - скорее всего выгоднее будет разнести по разным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 13:38 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
>Имхо критерий достаточно прост. Нужно сравнить количество и сложность операций, выполняемых "со всеми строками данных независимо от конкретного типа" и количество выполняемых поотдельности с "городами", "районами" и так далее. Если много общего - удобно хранить в общей таблице. Если большинство специфичного - скорее всего выгоднее будет разнести по разным. А вот тут, если можно, поподробнее... Мне что-то пока сложно сравнить. Могу сказать, что из этих отдельных таблиц можно сотворить поля со списками с динамическим обновлением (научили как), а также строить всякие запросы. Дерево займет много места на форме (по сравнению с 3 ComboBox'ами), да и не научился я пока с деревьями работать. А по логике вроде бы да, раз в природе эти данные существуют как иерархические, по крайней мере, на карте, то и хранить их надо в одной таблице. У меня тут сейчас похожая ситуация, но там точно все ясно, поскольку отдельными таблицами никак нельзя. Да и вообще на схеме уже столько таблиц, что черт ногу сломит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 16:19 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДМне что-то пока сложно сравнить. Могу сказать, что из этих отдельных таблиц можно сотворить поля со списками с динамическим обновлением (научили как), а также строить всякие запросы. Дерево займет много места на форме (по сравнению с 3 ComboBox'ами), да и не научился я пока с деревьями работать. Первое и самое главное. Запомните это, распечатайте, повесьте на стену и ежедневно проверяйте, пока не прочувствуете на подсознательном уровне: Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот Увязывать их - одна из самых больших глупостей, которые могут быть сделаны проектировщиком. Когда мы говорим о разработке например клиент-серверного приложения, мы говорим о том, что делаем два независимых взаимодействующих компонента, каждый из которых решает свои задачи. Комбобоксы можно заполнять из разных таблиц и комбобоксы можно заполнять из разных записей одной таблицы. Дерево можно заполнять из одной таблицы и можно заполнять из разных таблиц. Это вопрос реализации клиента и не особо сложный. Более того; в любой момент времени может быть принято решение переделать клиента с комбобоксов на treeview или наоборот, и это никак и никоим образом не должно повлиять на сервер. КДА по логике вроде бы да, раз в природе эти данные существуют как иерархические, по крайней мере, на карте, то и хранить их надо в одной таблице. Логика реального мира - опасный инструмент, если пытаться напрямую отразить ее в БД. Допустим, в реальном мире вряд ли существует объект "Пьяный розовый слон". Но может оказаться, что эта виртуальная сущность очень удобна для решения той или иной задачи и она должна быть реализована в БД. Итак, еще раз. В идеальном случае у Вас есть то или иное ТЗ, спецификация, функциональный дизайн или какие-либо подобные документы. Посмотрите в них, сколько раз в них говорится о некоторой единообразной обработке для записей разных уровней - тех самых районов, городов и прочего. Посмотрите, в скольких бизнес-функциях упоминаются города (и только они), районы (и только они) итп. В зависимости от этого и можно принять решение - так чтобы было удобно для более частого случая. Я здесь исхожу из предположения, что задача равно реализуется в обеих схемах, то есть например не может быть неограниченной вложенности в иерархии. КДДа и вообще на схеме уже столько таблиц, что черт ногу сломит. Именно поэтому в любом приличном инструменте есть возможность делать отдельные диаграммы для разных фрагментов схемы. Логика тут та же, что и в проекте на тысячу файлов - это реальность, которую нужно учиться организовать удобным для работы образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 16:35 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
softwarer, огромное спасибо! Простым и понятным языком объяснено то, что у Дейта сложно или я еще не дочитал до этого места. Никаких ТЗ и т.п. нет - база для личного пользования, разрабатывается мной и использовать буду тоже только я. Так что как все сам сделаю, так и будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:13 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
softwarer Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот Но не могут противоречить друг другу. Т.е на самом деле зависят - от общей основы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 11:54 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Так все-таки, какие будут итоги? Какие плюсы и минусы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 18:33 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Я не очень понимаю, что Вы подразумеваете под противоречием. Имхо существует единственное принципиальное ограничение - клиент [не привлекая других источников] не может оперировать информацией, отсутствующей в БД. Во всем остальном он свободен; он может взять любую информацию из БД и перекрутить ее как угодно. И исходя из своих задач, таки может именно что перекрутить - например, какой-нибудь OLAP-анализ непосредственно над данными учетной системы. Разумеется, эта свобода ограничивается практическими потребностями, критерием оптимальности. На макроуровне вполне естественно ожидать определенных соотношений, скажем "модуль клиента - набор таблиц БД", а часто и "форма - таблица". Но с моей точки зрения крайне важно понимать причины и следствия этих соотношений; надо понимать, что это осознанный выбор, который можно и нужно изменить в тех случаях, когда он неудачен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 19:01 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
Все осложняется еще и тем, что частенько присутствуют не административные, а географические указания типа: "Нижняя Волга", "междуречье Волги и Урала", "среднее течение Дона". Как с этим быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 06:23 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДПростым и понятным языком объяснено то, что у Дейта сложно или я еще не дочитал до этого места. А что, неужто у Дейта раздел про трёхуровневую модель ANSI/SPARC так сложно для вас написан? А это оно и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 08:29 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДЕсть данные которые можно хранить в одной таблице как иерархические или разбить на несколько таблиц. есть два вида иерархии: 1. между сущностями одного типа и 2.между разными сущностями. Разница в реализации принципиальная. Вам что надо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 10:41 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
softwarerСтруктура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот Это правильно написано, да и всё остальное у него. КДВсе осложняется еще и тем, что частенько присутствуют не административные, а географические указания типа: "Нижняя Волга", "междуречье Волги и Урала", "среднее течение Дона". Как с этим быть? Это всё должно реализовываться по общей схеме. Тем более, что если не требуется привязка к существующим классификаторам адресов (КЛАДР и т.п.). Есть универсальные схемы по реализации структуры адресов. Если интересно, то стучитесь 309-134-873, что бы в конфе не флудить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 13:04 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
В реляционных БД никаких иерархий нет. Иерархия может быть образована только в процессе сортировки, соединения и отображения записей. С помощью иерархической сортировки мы получаем упорядоченную выборку в которой сведения относящиеся к одному объекту находятся в нескольких записях. Сортировки применяются к выборкам однотипных записей. Например структура каталога в иерархическом запросе может выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Работать с такой выборкой реляционными методами весьма сложно. Например не так просто найти каталог C:\Documents and Setings\Administrator, а не C:\Administrator. К +++ можно отнести прозвольную глубину вложений и малое дублирование данных. С помощью соединения таблиц (в том числе и самосоединения) мы молучаем набор записей, каждая из которых полностью характеризует объект. К такой выборке применимы обычные возможности SQL. К сожалению количество характеристик объекта в данном случае ограничено, но это ограничение обходится динамическим SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 15:43 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
2 mod > есть два вида иерархии: 1. между сущностями одного типа и 2.между разными сущностями. Разница в реализации принципиальная. Вам что надо ? Дык... Если бы я знал что надо. Ну для начала давайте разберемся, одного ли это типа сущности (ТОЧКИ, РАЙОНЫ, ОБЛАСТИ) или нет? Если рассматривать их с точки зрения использования в моей базе то да, одного. Рассматриваются они в контексте привязки к ним объектов. Но не напрямую, а опосредованно. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ. Если рассматривать эти объекты с точки зрения ГИС, то это разные объекты: ТОЧКИ - точечные, а РАЙОНЫ и ОБЛАСТИ - полигоны. 2 mcureenab Ну да, конечно, нет. Я просто имел ввиду классические таблицы с полями ID, PARENT. 2 Waytac Не думаю, что это связано с КЛАДР. Произвольные полигональные объекты и классификатор адресов? Думаю, это многим будет интересно, так что можно и в конфе. Тут еще не так флудили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 20:56 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДЕсли рассматривать эти объекты с точки зрения ГИС, то это разные объекты: ТОЧКИ - точечные, а РАЙОНЫ и ОБЛАСТИ - полигоны. Точки можно смело исключать, ибо точка понятие чисто абстрактное. В природе точечных объектов не существует. Для рисования карты РАЙОНЫ и ОБЛАСТИ, это полигоны отличающиеся обозначением границы. Если считать, что область это множество районов, то получить область можно простым объединением районов в неё входящих, но на практике проще районы и области описать раздельно и привязать к разным слоям карты, а затем для просмотра выбирать слой с нужным уровнем детализации объектов. В общем, в плане организации данных можно обойтись без иерархии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 21:32 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
КДДык... Если бы я знал что надо. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ. Итого сущность одна - ТОЧКИ (со всеми своими св-ми), а РАЙОНЫ-ОБЛАСТИ - это иерархический классификатор для точек. Таких классификаторов м.б. несколько. Точки првязаны к листьям классификатора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 11:15 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
To КД В начале непонятно было о какой предметной области точно идёт речь, поэтому упомянул КЛАДР. А в общем вы сами ответили на свой вопрос в первом же топики. Приведу: КД... Я так думаю, что все зависит от конкретики. ... Конкретную реализацию имеет смысл рассматривать, только для конкретного ТЗ, т.к. вариантов может быть куча. Приведите точное описание задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:37 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
мод КДДык... Если бы я знал что надо. Т.е. объекты напрямую связаны только с ТОЧКАМИ, которые входят в РАЙОНЫ, а те, в свою очередь, в ОБЛАСТИ. Итого сущность одна - ТОЧКИ (со всеми своими св-ми), а РАЙОНЫ-ОБЛАСТИ - это иерархический классификатор для точек. Таких классификаторов м.б. несколько. Точки првязаны к листьям классификатора. Это везде так. Надо давать возможность классифицировать как вздумается. И классификатор не объязательно должен включать в себя только один тип (Вещи(хорошие вещи(женщины, диваны, чача, шашлык),плохие вещи(старость, безденежье, слабость)). :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 15:46 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
2 mcureenab > точка понятие чисто абстрактное > В природе точечных объектов не существует. Не такое уж абстрактное это понятие – точка. Все зависит от масштабов систем, с которыми мы работаем. Например, в масштабах материков и океанов (и даже областей и районов) площадь 1 м2 можно смело считать точечным объектом. Как справедливо отметил softwarer: "Допустим, в реальном мире вряд ли существует объект "Пьяный розовый слон". Но может оказаться, что эта виртуальная сущность очень удобна для решения той или иной задачи и она должна быть реализована в БД. Логика реального мира - опасный инструмент, если пытаться напрямую отразить ее в БД." 2 мод Собственно говоря, почти так оно сейчас и есть. Только районы и области в разных таблицах. Ну да слить их в одну иерархическую (да простит меня mcureenab) несложно. Другое дело, что это у меня объекты привязаны к точкам, а, скажем, в литературных источниках они могут быть привязаны и к районам и к областям, и, что самое противное, к произвольным полигональным объектам. Сделав общую иерархическую таблицу со ссылками для каждой записи на тип объекта, к которому она принадлежит, я хотя бы более-менее просто могу обеспечить ссылочную целостность между объектами и географическими объектами (точками, районами, областями). Но произвольные полигональные объекты и на такую структуру не ложатся. А про какие НЕСКОЛЬКО классификаторов вы говорите? Может быть, тут кроется ключ? 2 Waytac Ну, пожалуй, полное и подробное описание задачи приводить ни к чему - долго и утомительно. Изложу то, что на мой взгляд, повлияет на принятие решения. Итак, есть объекты - экземпляры зоологических коллекций, которые были собраны в таких-то точках, относящихся к таким-то районам и т.д. Эти экземпляры как-то называются, например, гадюка, барсук и т.д. Таким образом, в БД есть запись: Экземпляр № 625 Гадюка обыкновенная, собрана там-то (точка), тогда-то и такой-то. В литературных источниках авторы указывают, как правило, не конкретные экземпляры и точки, а в общем: "гадюка обыкновенная встречается в лесах среднего течения Дона". Задача все та же - как именно хранить географические данные? 2 Сахават Юсифов В этом топике мы не будем обсуждать права, т.к. база для личного пользования. Оставим все мысли по этому вопросу для топика "база товаров - у кого как...". Ладно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 19:08 |
|
||
|
Плюсы и минусы иерархического способа хранения данных
|
|||
|---|---|---|---|
|
#18+
softwarer Первое и самое главное. Запомните это, распечатайте, повесьте на стену и ежедневно проверяйте, пока не прочувствуете на подсознательном уровне: Структура данных в БД никоим образом не должна зависеть от пользовательского интерфейса программы равно как и наоборот Увязывать их - одна из самых больших глупостей, которые могут быть сделаны проектировщиком. Весьма не профессиональное высказывание. Удружил "начинающему". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 19:16 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34549624&tid=1543998]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
184ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 482ms |

| 0 / 0 |
