powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Паттерны проектирования баз данных
44 сообщений из 44, показаны все 2 страниц
Паттерны проектирования баз данных
    #32986146
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Откуда подчерпнуть информацию о паттернах проектирования БД?

Нигде в рунете ничего систематизированного не нашел. Под паттерном проектирования я понимаю нечто вот такое - в данном случае проецирование древовидной структуры в плоскую таблицу. Видел где-то перевод этой статьи на русский, но ссылку уже найти не могу.
Тема очень интересная, многие ничего подобного в глаза не видели, в частности, один мой знакомый сделал большие глаза, когда он промучалася над написанием и оптимизацией хранимой процедуры под MsSQL для выборки всех деталей по агрегату, а при данном способе проектирования таблицы это можно было бы сделать одним изящным SQL запросом.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32986160
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, только увидел, в соседнем топике краем коснулись этой проблемы, но в другой плоскости. Так что идея витает в воздухе, постепенно оформляясь ;)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32986926
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея представления дерева в виде вложенных множеств хороша только в тех случаях когда из дерева нужно часто делать выборки и редко обновления.
Причем очень редко. :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32987044
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спокойно. Не скатываемся в флейм по поводу данного конкретного решения. Используя данное решение как основную идею, я в свое время написал системы управления контентом сайта и в справочную систему.

Это только пример как паттерн может выглядеть. Это типовое решение, оно имеет свои недостатки и достоинства, область применения. Просмотрите книгу GoF по паттернам проектирования для ООП. Там все так по каждому паттерну и расписано: идея, в схематичном виде, область применения, ее достоинства и недостатки.

Настоятельно напоминаю: вопрос не о деревьях (я начинаю жалеть, что вообще их коснулся), вопрос о паттернах проектирования баз данных.

Или никто вообще ничего не слышал о систематизированной подборке?
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32987061
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня в закладках есть Library of Free Data Models , но, честно говоря, самому воспользоваться пока не привелось. И скорее всего это не шаблоны, а просто набор реализаций.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32988026
Andres 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На домашней странице Richard T. Snodgrass в PDF доступна полная версия его книги "Developing Time-Oriented Database Applications in SQL" (с примерами).
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32988074
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koravНастоятельно напоминаю: вопрос не о деревьях (я начинаю жалеть, что вообще их коснулся), вопрос о паттернах проектирования баз данных.

Или никто вообще ничего не слышал о систематизированной подборке?

Не понял почему последовало столько эмоций на мое небольшое замечание. :)
Что касается патернов для БД, то не представляю себе каими они могут быть.
Могу только предположить почему их нет. Например потому, что реляционная теория достаточно формализована, чтобы можно было проверять свои решения а не ориентироваться на народный опыт.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32988285
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Genady
Не понял почему последовало столько эмоций на мое небольшое замечание. :)
Что касается патернов для БД, то не представляю себе каими они могут быть.
Могу только предположить почему их нет. Например потому, что реляционная теория достаточно формализована, чтобы можно было проверять свои решения а не ориентироваться на народный опыт.

Прошу прошения за эмоции, хотелось не увлекаться дискуссией по поводу нужны шаблоны или нет. Но, видимо, не удалось ;).

Какими могут быть паттерны я вроде бы показал. Есть типовая задача - разместить древовидную структуру данных в плоской таблице. Есть неплохое решение, которое можно считать типовым. Кстати вставка-удаление в данную структуру тоже достаточно проста - если я правильно помню (я дела эти системы три года назад) после вставки-удаления узла происходит модификация одним update запросом.Человек, который не знает этого типового решения, городит примерно такое безобразие в виде сохранения в текстовом поле id предков записи разделенных точками. И синтаксический разбор этих полей при посторении дерева. А уж о трудоемкости вставки-удаления я не говорю вообще. Какое отношение ТАКОЕ решение имеет к степени формализации реляционной теории?

Denis Popov
У меня в закладках есть Library of Free Data Models, но, честно говоря, самому воспользоваться пока не привелось. И скорее всего это не шаблоны, а просто набор реализаций.
Да, это примеры реализаций. Я даже диаграмку игры Shrek2 нашел.


Andres 1
На домашней странице Richard T. Snodgrass в PDF доступна полная версия его книги "Developing Time-Oriented Database Applications in SQL" (с примерами).

Спасибо за ссылку, скачаю, посмотрю.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32988350
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koravКакими могут быть паттерны я вроде бы показал. Есть типовая задача - разместить древовидную структуру данных в плоской таблице. Есть неплохое решение, которое можно считать типовым. Кстати вставка-удаление в данную структуру тоже достаточно проста - если я правильно помню (я дела эти системы три года назад) после вставки-удаления узла происходит модификация одним update запросом.

Не совсем так Вот здесь например перевод статьи обратите внимание на процедуры модификации, просто множества приходится постоянно перетряхивать при модификациях.

У меня стояла задача работы с деревом, причем на нем должны были активно проводиться Выборки и модификация самого дерева, т.е. узлы в нем могли перемещаться и/или удаляться в том числе на любом уровне дерева, я прикинул насколько загрузиться сервер и отказался от этой модели.

Ну и я бы не назвал деревянную задачу типовой для реляциолнных БД. :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32994331
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andres 1На домашней странице Richard T. Snodgrass в PDF доступна полная версия его книги "Developing Time-Oriented Database Applications in SQL" (с примерами).

Посмотрел книгу. Больше похожа на учебник SQL с уклоном на манипуляцию данными о времени. Вообще прикольно, только воды много - ну зачем в книге по SQL обзорные вклейки по различным типам мировых календарей.

Искал в сети эту книгу , она, как мне кажется, наиболее интересна в данном контексте, но ее, похоже, нет нигде в электронном виде. Нашел книгу того же John Celko по деревьям и иерархическим структурам, но это не совсем то, что нужно.

Genady
Не совсем так Вот здесь например перевод статьи обратите внимание на процедуры модификации, просто множества приходится постоянно перетряхивать при модификациях.

Вот и перевод статьи нашелся. Большое Спасибо!
На самом деле там все не так сложно - самый большой и сложный код в статье, это код сжатия разрежений в значениях id левых и правых сторон записей при удалении поддеревьев/узлов. Я вообще этим не занимался. Жизнь разработчика сильно упрощает условие, что одновременно добавляется/удаляется только один узел дерева. Тогда процедура вставки/удаления влечет за собой только модификацию левосторонних и правостороних id путем увеличения/уменьшения их на 1. Это делается одним update запросом. Максимиум что ему может понадобитться сделать это инкрементировать/декрементировать во всех записях таблицы (это случай удаления самого правого листа дерева) значения двух целочисленных полей.
IMHO сжатие разрежений нужно только для сохранения читабельности таблицы, на работе оно никак не отражатеся.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32994504
Andres 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korav
Посмотрел книгу. Больше похожа на учебник SQL с уклоном на манипуляцию данными о времени. Вообще прикольно, только воды много - ну зачем в книге по SQL обзорные вклейки по различным типам мировых календарей.


Ну да. И хорошо. Так и должно быть для топика "паттерны".

Я на sql.ru не очень давно, но разве не возникают регулярно вопросы типа "Помогите изменить одним запросом мою базу, чтобы была с логом версий, с учетным временем, etc etc, используя не более одного поля DATETIME на таблицу и чтобы мне не нужно было переделывать клиента"
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32996090
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korav
Вот и перевод статьи нашелся. Большое Спасибо!
На самом деле там все не так сложно - самый большой и сложный код в статье, это код сжатия разрежений в значениях id левых и правых сторон записей при удалении поддеревьев/узлов. Я вообще этим не занимался. Жизнь разработчика сильно упрощает условие, что одновременно добавляется/удаляется только один узел дерева. Тогда процедура вставки/удаления влечет за собой только модификацию левосторонних и правостороних id путем увеличения/уменьшения их на 1. Это делается одним update запросом. Максимиум что ему может понадобитться сделать это инкрементировать/декрементировать во всех записях таблицы (это случай удаления самого правого листа дерева) значения двух целочисленных полей.
IMHO сжатие разрежений нужно только для сохранения читабельности таблицы, на работе оно никак не отражатеся.

Ну что ж, хотите паттернов с иерархиями? Нате. :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32996150
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot korav
..........
И синтаксический разбор этих полей при посторении дерева. А уж о трудоемкости вставки-удаления я не говорю вообще. Какое отношение ТАКОЕ решение имеет к степени формализации реляционной теории?
[/quot]

А чем Вам не нравится :

1. Отец
2. Сын
3. ...

Обыкновенная таблица. Универсальная, с любой глубиной.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32996963
korav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andres 1
Ну да. И хорошо. Так и должно быть для топика "паттерны".
Я на sql.ru не очень давно, но разве не возникают регулярно вопросы типа "Помогите изменить одним запросом мою базу, чтобы была с логом версий, с учетным временем, etc etc, используя не более одного поля DATETIME на таблицу и чтобы мне не нужно было переделывать клиента"
С этой точки зрения я как-то на книгу не посмотрел. Сейчас посмотрю повнимательней - все-таки книга на 500 листов, я ее "по диагонали" просмотрел, сейчас почитаю с большим интересом.

Genady
Ну что ж, хотите паттернов с иерархиями?Нате. :)

Не понравилось, давайте еще ;). Во первых, обсуждается давний прием с внутренними ссылками, во вторых, все явно заточное под SQL Server2000 и никаких попыток выработать более универсальное решение нет. Ну и хранимые процедуры там, где можно (при другом решении таблиц) в принципе обойтись чистым SQL. Что понравилось - вынести различные по связям типы деервьев над одинаковыми данными в различные таблицы. Надо будет запомнить. Все равно спасибо, это уже "горячее".

Сахават Юсифов
А чем Вам не нравится :

1. Отец
2. Сын
3. ...

Обыкновенная таблица. Универсальная, с любой глубиной.
Люди! Мне очень не охота флеймить по поводу различных представлений иерархий в плоских таблицах, я об этом уже давно думал и свои выводы сделал. Мне это уже не интересно. Я о паттернах проектирования поговорить зашел. В общем-то разговора на заданную тему пока не получается, но чтобы не давать опускаться топику в списке свежих сообщений приходится следовать интересам посетителей ;).

Основное отличие данного решения от того, что придумал Селко в том, что Селко изобрел метод преобразования иерархии во вложенные множества (nested sets). Что это дает? SQL это язык, ориентированный на работу с множествами. Технически преборазование реализовано путем введения ЦЕЛОЧИСЛЕННЫХ УНИКАЛЬНЫХ полей. Следовательно, мы можем
1) В рамках SQL получить выборку практически любой сложности, под любую типовую задачу работы с иерархиями.
2) Получить выборку быстро (если создадим индексы по данным полям).

Какие недостатки имеет приведенное Вами решение? Мы храним данные о иерархии в строковом поле. Каждый раз для построения дерева нам нужно обрабатывать строковые поля. Мы не можем использовать мощные средства SQL для работы с множествами, фактически, мы используем работу со строками, под что SQL абсолютно не затачивался (фактически при таком построении таблицы пишется хранимая процедура, занимающаяся синтакисческим анализом строки). Относительно любой глубины тоже все не совсем верно - как правило, для ускорения работы делают строку фиксированной длины, сделоватьельно, число символов в ней и уровней в иерархии ограничено. Относительно типовых задач работы с иерархиями: более-менее быстро работает только задача построения ветвей дерева. А если потребуется выбрать, скажем все узлы дерева, находящиеся на опреденном уровне?(Выбрать всех вице-президентов компании). А если потребуется выбрать, скажем, все узлы дерева, находящиеся на опреденном уровне и имеющие в подчинении определенное число листьев? (Выбрать всех вице-президентов, которым подчиняется не менее 100 работников).
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32997066
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем для этого SQL, есть же иерархические и сетевые модели.
При желании (нужды) можно написать пару функций (хп) и для SQL.
Есть специальные структуры для графов вообще, GraphML,...
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32997165
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовА зачем для этого SQL, есть же иерархические и сетевые модели.
При желании (нужды) можно написать пару функций (хп) и для SQL.
Есть специальные структуры для графов вообще, GraphML,...

Согласен! Ммы можем любой объект во вселенной идентифицировать, скажем BigInt, или любой элемент этого объекта,более того, можно и то и другое, одновременно!
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32997215
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем рассмешил?
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32997437
Int23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
korav
Нашел книгу того же John Celko по деревьям и иерархическим структурам, но это не совсем то, что нужно.


Может дашь ссылку????
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #32997533
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korav
Я о паттернах проектирования поговорить зашел. В общем-то разговора на заданную тему пока не получается, но чтобы не давать опускаться топику в списке свежих сообщений приходится следовать интересам посетителей ;).


Дык объясните о каких паттернах идет речь, паттерн "склад", "библиотека" и т.п.?
Нет таких и никогда не будет.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33007746
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
GenadyДык объясните о каких паттернах идет речь, паттерн "склад", "библиотека" и т.п.?
Нет таких и никогда не будет.
Только что зашел, так что извините, если не в тему. По идее, имеются в виду вовсе не библиотеки и склады, а различные ситуации, которые в том или ином виде могут встречаться в самых разных предметных областях. Предлагаю составить приблизительный список тех паттернов, которые вообще имеет смысл описывать. Для начала:
Деревья (структур разных много, вплоть до двоичных деревьев с балансировкой)

Графы (надо ли? Вроде и так все довольно прозрачно. Хотя...)

Роли (имеется в виду, когда у нас есть разновидности какого-то объекта со своими доп. свойствами)

Хранение исторических данных (тоже надо ли?)

Наборы свойств, определяемые пользователем (особенно в приложении к иерархической структуре классов, там довольно весело получается)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33008745
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVU
Только что зашел, так что извините, если не в тему. По идее, имеются в виду вовсе не библиотеки и склады, а различные ситуации, которые в том или ином виде могут встречаться в самых разных предметных областях. Предлагаю составить приблизительный список тех паттернов, которые вообще имеет смысл описывать. Для начала:
Деревья (структур разных много, вплоть до двоичных деревьев с балансировкой)

Графы (надо ли? Вроде и так все довольно прозрачно. Хотя...)


Ага, особенно ненаправленный граф.
LVU
Роли (имеется в виду, когда у нас есть разновидности какого-то объекта со своими доп. свойствами)


Уже есть такой паттерн, называется "Супертип - подтип". :)
LVU
Хранение исторических данных (тоже надо ли?)


Просто так хранить историю смысла не вижу, а если есть цель, то она и определяет способ хранения таких данных.
LVU
Наборы свойств, определяемые пользователем (особенно в приложении к иерархической структуре классов, там довольно весело получается)

Вот о чем здесь речь идет, честно говоря не понял.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33008952
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
Genady LVU Графы (надо ли? Вроде и так все довольно прозрачно. Хотя...)
Ага, особенно ненаправленный граф. Об этом я тоже подумал после того, как запостил сообщение. Но решил не дописывать.

Genady LVU Роли (имеется в виду, когда у нас есть разновидности какого-то объекта со своими доп. свойствами)

Уже есть такой паттерн, называется "Супертип - подтип". :)Для деревьев тоже паттерны готовые есть. Я говорю о том, чтобы попробовать собрать вместе инфу по ним. Или вы об ООСУБД? Так вроде здесь речь все же об РСУБД шла?

Genady LVU Хранение исторических данных (тоже надо ли?)

Просто так хранить историю смысла не вижу, а если есть цель, то она и определяет способ хранения таких данных.Согласен, там все, в общем, тривиально получается.

Genady LVU Наборы свойств, определяемые пользователем (особенно в приложении к иерархической структуре классов, там довольно весело получается)
Вот о чем здесь речь идет, честно говоря не понял.Юзер может может определять типы объектов и наборы свойств для этих типов. Потом определять сами объекты (экземпляры) и задавать значения их свойств. Веселее всего, если типы организованы иерархически и потомки должны иметь все свойства предков. Один из возможных типов данных для свойств - lookup, т.е., возможность выбора из нескольких значений. Вроде бы достаточно часто такие вещи встречаются?
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33009006
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVUДля деревьев тоже паттерны готовые есть. Я говорю о том, чтобы попробовать собрать вместе инфу по ним. Или вы об ООСУБД? Так вроде здесь речь все же об РСУБД шла?
Не понял причем здесь ООСУБД, я говорил о достаточно распространенной ситуации, когда есть несколько типов сущностей, у которых есть общие атрибуты и специфичные для каждого типа. В таком случае специфичные просто выносятся в другие таблицы (подтипы) связанные с супертипом.
LVU
Юзер может может определять типы объектов и наборы свойств для этих типов. Потом определять сами объекты (экземпляры) и задавать значения их свойств. Веселее всего, если типы организованы иерархически и потомки должны иметь все свойства предков. Один из возможных типов данных для свойств - lookup, т.е., возможность выбора из нескольких значений. Вроде бы достаточно часто такие вещи встречаются?

Не могу себе представить задачу, в которой понадобились бы подобные возможности.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33009093
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
GenadyНе понял причем здесь ООСУБД, я говорил о достаточно распространенной ситуации, когда есть несколько типов сущностей, у которых есть общие атрибуты и специфичные для каждого типа. В таком случае специфичные просто выносятся в другие таблицы (подтипы) связанные с супертипом.Так чем не паттерн? Тем более, здесь есть несколько неочевидных моментов, связанных с обеспечением целостности.

Genady LVUЮзер может может определять типы объектов и наборы свойств для этих типов. Потом определять сами объекты (экземпляры) и задавать значения их свойств. Веселее всего, если типы организованы иерархически и потомки должны иметь все свойства предков. Один из возможных типов данных для свойств - lookup, т.е., возможность выбора из нескольких значений. Вроде бы достаточно часто такие вещи встречаются?Не могу себе представить задачу, в которой понадобились бы подобные возможности.Из недавнего: у предприятия есть куча договоров (тысячи), но разных типов договоров немного - десятки. Для каждого типа держим шаблон в rtf. У разных типов могут быть разные "переменные куски", часть из них стандартные, вроде имени директора и банковских реквизитов, часть - нестандартные, определяемые пользователем. У каждого такого реквизита (и стандартного, и нестандартного) есть "макрос" - то, что пишется в шаблоне и при генерации текста конкретного договора заменяется значением. Это не единственный пример, просто тут достаточно ярко вроде.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33009115
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVUТак чем не паттерн? Тем более, здесь есть несколько неочевидных моментов, связанных с обеспечением целостности.
Не вижу никаких неочевидных моментов, на всякий случай уточно, что PK поддипов наследуется от супертипа, т.е. РК и FK один и тот же атрибут.

LVUИз недавнего: у предприятия есть куча договоров (тысячи), но разных типов договоров немного - десятки. Для каждого типа держим шаблон в rtf. У разных типов могут быть разные "переменные куски", часть из них стандартные, вроде имени директора и банковских реквизитов, часть - нестандартные, определяемые пользователем. У каждого такого реквизита (и стандартного, и нестандартного) есть "макрос" - то, что пишется в шаблоне и при генерации текста конкретного договора заменяется значением. Это не единственный пример, просто тут достаточно ярко вроде.

Из этого примера я не вижу необходимости давать возможности юзерам определять типы объектов и набор их атрибутов.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33009534
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
Genady LVUТак чем не паттерн? Тем более, здесь есть несколько неочевидных моментов, связанных с обеспечением целостности.
Не вижу никаких неочевидных моментов, на всякий случай уточно, что PK поддипов наследуется от супертипа, т.е. РК и FK один и тот же атрибут.Здесь может, в частности, возникать некоторая сложность, если супертип является "абстрактным".

GenadyИз этого примера я не вижу необходимости давать возможности юзерам определять типы объектов и набор их атрибутов.Вот те самые нестандартные реквизиты - это и есть атрибуты, которые определяет пользователь. То есть, их набор, равно как и набор типов договоров, неизвестен во время разработки и может изменяться в процессе работы (т.е., добавление нового типа договоров - это совершенно нормальное событие, происходящее раз в один-два месяца).
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33014707
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33015086
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
Templar http://www.arbinada.com/modules.php?name=Content&pa=showpage&pid=75 Класс! Вполне такой нормальный шаблон. А еще что-то на эту тему? Просто чтобы свести все воедино - благо, топик позволяет :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33015620
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVUКласс! Вполне такой нормальный шаблон. А еще что-то на эту тему? Просто чтобы свести все воедино - благо, топик позволяет :)
А еще абстрактных тем как-то не наблюдается. Иерархии упомянули. Граф можно рассмотреть (тогда иерархия войдет частным случаем).
Дальше имеет смысл рассматривать уже более предметно-ориентированные шаблоны типа "абстрактный учет на регистрах", "прайс-лист", "налоги"...
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33015847
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
TemplarА еще абстрактных тем как-то не наблюдается. Иерархии упомянули. Граф можно рассмотреть (тогда иерархия войдет частным случаем).
Дальше имеет смысл рассматривать уже более предметно-ориентированные шаблоны типа "абстрактный учет на регистрах", "прайс-лист", "налоги"...
А это уже не совсем то, что хочется называть шаблонами (учет на регистрах - еще куда ни шло...). Если я правильно понял замысел топика, имеются в виду вещи вроде тех, которые описаны в Design Patterns - всякие там abstract factory, singleton и проч., только применительно к БД.

А насчет дерева как частного случая графа - все-таки он совсем другой, у него реализация проще. Хотя, конечно, частный случай :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33016277
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В design patterns много поведенческих. А для БД применимы только структурные.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33030185
DPH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DPH
Гость
Ну, я в свое время выделил у себя следующие паттерны:

1. Реализация древовидных структур (кстати, более удобный, нежели на множествах, хотя и с нарушениями нормализации).
2. Реализация справочников с частыми изменениями в процессе разработки (когда ТЗ нечетко и незакончено).
3. Два разных подхода к историчности - в зависимости от требований.
4. Реализация настраиваемых пользователем алгоритмов обработки данных.
5. Реализация прав доступа (внутренних).

Дальше уже плохо помню. Вроде бы в сумме штук 10 штук набиралась ;)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33036804
Templar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шаблон для системы безопасности я описывал в 1998 году.
http://www.arbinada.com/modules.php?name=Content&pa=showpage&pid=16
С тех пор много воды утекло, но для основы вполне годится.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33036939
Фотография optimizer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GenadyНе могу себе представить задачу, в которой понадобились бы подобные возможности

У меня используются данные возможности для хранения характеристик товаров. Это позволяет ввести понятие (таблицу) "товар", а не делать для каждого товара свою таблицу. В карточке товара пользователь определяет свойства, присущие данному товару. А в марках данного товара уже вводятся значения свойств марок. Если интересно могу опубликовать скриншот фрагмента модели.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33038986
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
optimizer Если интересно могу опубликовать скриншот фрагмента модели.

Дык если мне не интересно, то может кому дрогому интересно, топик то на какую тему? ;)
Выкладывай. :)
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33039060
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну, я в свое время выделил у себя следующие паттерны:

Дружище, чего ж Вы так скромно? Расскажите, пожалуйста, поподробнее.

Особенно интересно:

> 2. Реализация справочников с частыми изменениями в процессе разработки
> (когда ТЗ нечетко и незакончено).
> 3. Два разных подхода к историчности - в зависимости от требований.
> 5. Реализация прав доступа (внутренних).
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33046770
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hay, D., Data Model Patterns: Conventions of Thought, Dorset House Publishing:New York, 1996.
а также Len Silverston , The Data Model Resource Book.
ИМХО Hay точнее, у Сильверстона скорее идеи для дальнейшей разработки.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #33047608
LVU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LVU
Гость
ModelRHay, D., Data Model Patterns: Conventions of Thought, Dorset House Publishing:New York, 1996.
а также Len Silverston , The Data Model Resource Book.
ИМХО Hay точнее, у Сильверстона скорее идеи для дальнейшей разработки.А в электронном виде есть? А то в библиотеку неохота идти...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Паттерны проектирования баз данных
    #35601936
Паттер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Со времени создания темы прошло много времени. Какиен есть толковые книги по паттернам для БД?
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #35602231
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Genady
Не совсем так Вот здесь например перевод статьи обратите внимание на процедуры модификации, просто множества приходится постоянно перетряхивать при модификациях.


Как-то не удалось обнаружить по этой ссылке статью.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #35602237
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVU Templar http://www.arbinada.com/modules.php?name=Content&pa=showpage&pid=75 Класс! Вполне такой нормальный шаблон. А еще что-то на эту тему? Просто чтобы свести все воедино - благо, топик позволяет :)

Это что, только мне так везет, что ни одна ссылка не открывается???
Хотелосьбы понять, почему...
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #35602239
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай1LVU Templar http://www.arbinada.com/modules.php?name=Content&pa=showpage&pid=75 Класс! Вполне такой нормальный шаблон. А еще что-то на эту тему? Просто чтобы свести все воедино - благо, топик позволяет :)

Это что, только мне так везет, что ни одна ссылка не открывается???
Хотелосьбы понять, почему...

Ура! До меня дошло. Они все умерли...
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #35602563
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Со времени создания темы прошло много времени. Какиен есть толковые книги по паттернам для БД?

Нет ни толковых книг, ни паттернов. Дело вот в чем: реально можно строить только очень простые паттерны. А такие паттерны нет смысла ни реализовывать, ни описывать, ни использовать. Простой пример: пользователи. Стандартно: логин, пароль. Чуть сложнее: логин, (пароль, тип авторизации). Еще чуть сложнее: логин, (майнтейнер (версия API, атрибуты авторизации)). Понятно, почему в данном случае паттерн нет смысла реализовывать? Дальше все еще хуже: для нормально спроектированного приложения логин пользователя сопоставлен логину пользователя базы данных (один из уровней ограничения доступа). Дело в том, что разные СУБД по-разному обеспечивают ограничение доступа к элементам базы данных на уровне пользователя базы данных, т. е. паттерн получится платформозависимым и по сути превратится из паттерна в частное решение.
...
Рейтинг: 0 / 0
Паттерны проектирования баз данных
    #35602580
ч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ч
Гость
Толковый ответ. Спасибо.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Паттерны проектирования баз данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]