Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,368
новичок: Goosprin
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

моделирование процесса поступления заявок в ЭВМ на GPSS + Пояснительная ...
Игра Sokoban на Delphi + Блок схемы
Моделирование вычислительного центра на GPSS + Отчет + Блок схема

3.4. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ АНТИПАТТЕРНА
Конструкция списка соседства, возможно, прекрасно обеспечит ту работу, которую требуется выполнить в приложении. Достоинство конструкции списка соседства состоит в извлечении прямого родительского или дочернего объекта заданного узла. В этом случае не представляет сложности и вставка строки. Если данные операции — это все, что необходимо делать с иерархическими данными, тогда Список соседства способен хорошо справляться с ними.
НЕ УСЛОЖНЯЙТЕ
Я написал для компьютерного центра обработки данных приложение по отслежи-
ванию производственных ресурсов. Внутри компьютеров скомпоновано некоторое
оборудование; например, дисковый контроллер с кэшем установлен в сервере,
смонтированном в стойке, а дополнительные модули памяти установлены в кон-
троллере диска.
Мне требовалось SQL-решение, позволяющее легко отслеживать использование иерархических коллекций. Но мне также надо было отслеживать каждую отдельную часть оборудования для создания бухгалтерских отчетов по амортизации, использованию оборудования и рентабельности инвестиций.
Менеджер сообщил, что совокупности могут иметь подмножества и, таким образом, дерево теоретически может распространяться на любую глубину. Потребовалось несколько недель, чтобы улучшить программный код функций обработки деревьев в хранилище базы данных, пользовательского интерфейса, администрирования и отчетности.
Однако на практике приложению инвентаризации никогда не надо выполнять группирование оборудования с деревом глубже одиночной взаимосвязи «родитель-потомок». Если бы мой клиент подтвердил, что этого будет достаточно для моделирования его требований к инвентаризации, мы могли бы сэкономить усилия, не выполняя достаточно большого объема работы.
РСУБД (реляционные СУБД) некоторых производителей поддерживают расширения SQL с целью поддержки иерархий, хранящихся в формате списка соседства. Стандарт SQL-99 определяет синтаксис рекурсивного запроса, использующего ключевое слово WITH, за которым следует обыкновенное табличное выражение.
Файл npvmepa:_Trees/legit/cte.sql
WITH CommentTree
(comment_id, bug_id, parent_id, author, comment, depth)
AS (
SELECT *, 0 AS depth FROM Comments WHERE parent_id IS NULL UNION ALL
SELECT c.*, ct.depth+1 AS depth FROM CommentTree ct JOIN Comments с ON (ct.comment_id = c.parent_id))
SELECT * FROM CommentTree WHERE bug_id = 1234;
В Microsoft SQL Server 2005, Oracle 1 lg, IBM DB2 и PostgreSQL 8.4 поддерживаются рекурсивные запросы с использованием обычных табличных выражений, подобных показанным выше.
MySQL, SQLite и Informix пока еще не поддерживают этот синтаксис. То же самое относится к СУБД Oracle 10g, которая по-прежнему широко применяется на практике. Можно было бы предположить, что в будущем синтаксис рекурсивных запросов станет доступным во всех популярных базах данных, и тогда использование списка соседства не будет связано с соответствующими ограничениями.
Базы данных Oracle 9i и 10g поддерживают оператор WITH, но не для рекурсивных запросов. Вместо этого существует фирменный синтаксис: START WITH и CONNECT BY PRIOR. Данный синтаксис подходит для подобных рекурсивных запросов:
Файл примера: Trees/legit/connect-by.sql
SELECT * FROM Comments
START WITH comment_id = 9876
CONNECT BY PRIOR parent_id = comment_id;
Опубликовал vovan666 June 18 2013 12:24:57 · 0 Комментариев · 3292 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
MiniTetris [Исход...
DragMe [Исходник ...
Нестандартные при...
SMExport
Как программирова...
Панель поиска
База Allsubmitter...
Программирование ...
PCX
DeleteEdit
FatScrollbar
C# 2005 и платфор...
JBlabel3D
CaptionButton
Редактор анимаций
Система баннеро-о...
Delphix Sample [И...
Песочные часы
OnlineIP
Открытие Cd-ROM'a...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Служба поддержки -...
Domain Controllers...
Команды факс-модема
Новые возможности FFS
Введение в создани...
База данных по сту...
Чем заменить перек...
Онлайновая инфогра...
Разделение абонент...
Популярная механика
Адреса, указатели ...
Возможности окруже...
Установка дистанци...
Линия границы надписи
Программное обеспе...
групповой политики
Структура объекта ...
5.2. Ввод и вывод...
Сортировка каталог...
Добавление в проек...
Mostbet ставки на...
Внедрение решенияК...
Этапы и способы со...
Кардшаринг нтв
Ordinal expression...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?