|
|
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Нужно выбрать правильный путь для сохранения N-Дерева в СУБД. Дерево состоит из разных объектов и представляет собой иерархию структур и членов этих структур. В последствии это всё отоброжается таблицами и их полями в ДБ. А само дерево это методанные, которые помогают создавать запросы и описывают всю глобальную структуру таблиц. Кроме того должна существовать возможность менять дерево (а именно структур таблиц) и дерево всего 100% должно соответсвовать тому, что есть БД. Вопрос в том как лучше представить дерево и выбрать петерн для его сохранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 14:46:15 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Наверное, выгнали из форума по проектированию баз данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 14:47:53 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Тут вопрос не в базах данных, а именно в предсталении этой структуры например на С++ или C# не важно, главное это какой выбрать патерн для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 14:50:39 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
не в тему вы не фреймворк делаете случаем? С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:05:36 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Пытаюсь оптимизировать существующие глюки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:20:25 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
не знаю вашей системы, но мне показалось что это в некотором смысле именно фреймворк я тоже хочу создать нечто подобное, есть по крайней мере набор идей С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:32:28 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Creator...N-Дерева в СУБД.. Какой смысл ты вкладываешь в термин N-Дерево? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:43:16 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
mayton, У структуры есть вершина (root) и у неё есть дочернии структуры их может быть N и дочерние члены разных примитивных типов (строки числа и тд). Понятное дело что у этих структур тоже может быть свои подструктуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 15:54:14 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Так бы и сказал - дерево. Ну вот тебе один вариант архитектуры (на server-side) Код: plaintext 1. 2. 3. 4. 5. 6. 7. id и parent_id обеспечивают иерахрию, meta - позволит сериализировать любой тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 16:08:12 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Уточните пожалуйста как это реализованно в приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 17:14:49 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
А никак не реализовано. Считай, что это мозговой штурм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 17:26:51 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
mayton, Я бы предложил создать один класс который выполняет построение дерева, и предостовляет другим классам только интерфейс к элементу дерева ( например структуре ) при этом информацию через интерфейс можно только читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 17:36:52 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Не возражаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 18:22:12 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Creator пишет: > Вопрос в том как лучше представить дерево и выбрать петерн для его > сохранения. Предлагаю использовать паттерн INSERT. По-моему, самый подходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 20:30:18 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Creator пишет: > Пытаюсь оптимизировать существующие глюки) Глюки надо стирать в корзину, а не оптимизировать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 20:30:59 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
CreatorУ структуры есть вершина (root) и у неё есть дочернии структуры их может быть N и дочерние члены разных примитивных типов (строки числа и тд). Понятное дело что у этих структур тоже может быть свои подструктуры.оч похоже на паттерн компоновщик wikipediaКомпоновщик (англ. Composite pattern) — шаблон проектирования, объединяет объекты в древовидную структуру для представления иерархии от частного к целому. Компоновщик позволяет клиентам обращаться к отдельным объектам и к группам объектов одинаково. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 22:28:26 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
смею предположить, речь идёт об организации кода клиента: ORM, Active record. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 22:29:40 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Компоновщик это очень близко, проблема в том что хочется все операции по работе с бд , передать другому объекту, для того чтобы не внедрять sql код в классы которые по сути отвечают за описание мета данных, и при этом иметь возможность менять структуру этого дерева с возможностью отката, при возниконовении ошибок при изменении структуры таблиц. Что то похожее описывает Ларман с 329 Saving objects in a relational database is a very general task for which many classes need support. Placing these responsibilities in the Sale class suggests there is going to be poor reuse or lots of duplication in other classes that do the same thing. Thus, even though Sale is a logical candidate by virtue of Information Expert to save itself in a database, it leads to a design with low cohesion, high coupling, and low reuse potential—exactly the kind of desperate situation that calls for making something up. A reasonable solution is to create a new class that is solely responsible for saving objects in some kind of persistent storage medium, such as a relational database; call it the PersistentStorage.2' This class is a Pure Fabrication—a figment of the imagination. По сути ближе это именно к PersistentStorage. Но на мой взгляд это подходит для объектов одинаковой структуры (для самих данных), но не для структуры которая может менятся если пользователь хочет поменять её во время работы приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 22:58:35 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
CreatorКомпоновщик это очень близко, проблема в том что хочется все операции по работе с бд , передать другому объекту, для того чтобы не внедрять sql код в классы которые по сути отвечают за описание мета данных, и при этом иметь возможность менять структуру этого дерева с возможностью отката, при возниконовении ошибок при изменении структуры таблиц.не уловил проблемы сейчас, можете описать задачу более полно? ЗЫ. у меня пока не стыкуется это: "Нужно выбрать правильный путь для сохранения N-Дерева в СУБД" и это: "Тут вопрос не в базах данных, а именно в предсталении этой структуры например на С++ или C#". о какой части мы всё таки сейчас говорим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2008, 23:55:17 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Перефразирую вопрос в том как правильно представить это дерево например на С++, чтобы минимизировать проблемы при его изменении и сохранении в бд. При этом само дерево, как часть бизнесс логики, не перегружать особенностями реализации его отображения в бд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 00:05:24 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
тогда мне кажется, что для собственно хранения дерева в памяти программы подойдёт компоновщик, а для сохранения всего дерева в БД и для построения запросов пользователем вам потребуются два разных итератора, которые будут обходить либо всё дерево (для сохранения), либо выбранные пользователем узлы (для формирования запросов). имхо, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 00:47:17 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Как в этом случаее можно определить обновлённые элементы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 00:52:09 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Компоновщик не определяет дополнительных методов, касаемых признаков "изменения" элементов. Ты это должен сделать сам, исходя из логики задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 01:13:35 |
|
||
|
Какой петерн выбрать для сохранения дерева в БД
|
|||
|---|---|---|---|
|
#18+
Как в таком случае компоновщик может сохранять объект, если он не знает что именно он должен сохранить в дереве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2008, 01:27:23 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=130&tid=1344740]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 339ms |

| 0 / 0 |
