powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объектная надстройка над релационной СУБД
25 сообщений из 438, страница 8 из 18
Объектная надстройка над релационной СУБД
    #32855751
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> 1. Зачем вам пятьсот однотипных таблиц словарей?

Какие пятьсот однотипных таблиц словарей? Вы о чем? Пятьсот таблиц - это собственно и есть содержимое среднего размера базы данных, про организацию словарей я ни слова не сказал. А таблиц связей со словарем, соответственно, двести пятьдесят.

> 2. Вас что, двести пятьдесят промежуточных таблиц пугает ?

Нет, меня не пугает двести пятьдесят таблиц. Я не буду использовать решение, которое предполагает двести пятьдесят запросов к базе данных для достаточно простой операции. Вы что-то, помнится, говорили про производительность? Эта операция будет использоваться гораздо чаще, чем пример с Вашим отчетом о годовых продажах. Дело в том, что сущностей, которые требуют таких промежуточных таблиц, - даже не десяток. И пользователей такой системы - далеко не десяток.

> Тогда вы внутрь SAPов/Peoplesoftов/JDEdvardсов лучше не смотрите, чтоб
> кондратий не хватил - там счет таблицам идет на тысячи.

Хм... а чего, собственно, критерий - количество таблиц? Кто сказал, что эти лавки с громкими имена используют оптимальную структуру данных? Ну, сидят там индусы-кодеры за относительно небольшие деньги и описывают себе детерминированные системы. И?

> Причем, что характерно, работают на любой промышленной БД - Oracle, MS
> SQL, Informix, DB2, Sybase...

Я за них сильно рад. Вот только лично мне этот факт мои задачи решать как бы совсем никак не помогает. Т. е. абсолютно.

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

А как только мы услышим пример задачи, которую нерационально решать реляционными методами - так сразу и перейдем к обсуждению альтернативных методов.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855761
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621
Все правильно. Теперь считаем. Как я и говорил, база данных среднего размера (единицы сотен таблиц; для определенности примем 500). Пусть это отношение имеет смысл для половины сущностей (опустили служебные таблицы и связи). Получаем 250 (двести пятьдесят) промежуточных таблиц. Создали таблицы, заполнили их. Теперь выбираем сущности, связанные с определенным словом. Как по-Вашему, какие проблемы меня здесь ждут?


Зачем вы разнесли сущности по пятистам таблицам ? У вас что, 500 разных словарей, и вы ищете слово по всем словарям ? Почему не поместить сущности в одну таблицу ?
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855781
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Я все еще не вижу примера таких задач.

;) Извините, но лучше, чем я уже сформулировал, я сформулировать не могу. Давайте спишем это на мою косноязычность.

> Вы мне изложили не постановку, а свое понимание реализации - через какое-то
> поле связи всего со всеми.

Ни о каких полях связи "всего со всеми" речи не было, откуда Вы это взяли?

> Вы попытайтесь _внятно_ рассказать, что надо сделать, а как это сделать без
> двухсотпятидесяти таблиц в одном запросе мы уж придумаем.

А чем пример со словарем не годится?

> Попробуйте обойтись без слов "сущность", "объект" и "связь" - замените их на
> что-то типа "Вася", "яблоко" и "принадлежит".

"Объект" я стараюсь не употреблять, поскольку для использования этого термина применительно к реляционным СУБД необходимо уточнять, о чем речь, - очень уж неоднозначно его можно интерпретировать. А "сущность" и "связь" - это как бы устоявшиеся термины; всегда думал, что они понимаются однозначно.

ОК, еще раз про словарь. Есть база данных (тематика, структура - не важны). В этой базе данных есть некий словарь (иностранных слов, толковый, - неважно), который состоит из одной таблицы (его структура роли не играет). Необходимо связать этот словарь (т. е. таблицу словаря) со всеми другими таблицами этой базы данных (предположим, что такая связь имеет смысл для всех таблиц) отношением n:m в предположении, что любому слову в любой таблице может быть сопоставлено некоторое слово (в общем случае несколько) из словаря.

Так нормально?

> Зачем вы разнесли сущности по пятистам таблицам ? У вас что, 500 разных
> словарей, и вы ищете слово по всем словарям ? Почему не поместить сущности
> в одну таблицу ?

Нет, словарь у меня один. ;) А вот других таблиц с остальными данными - пятьсот.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855790
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Вы опять излагаете свою реализацию, а не постановку.
2. Если лень заводить 250 промежуточных таблиц - заведите одну, где будет дополнительно указываться "имя связанной таблицы".
3. Если вам надо выбрать записи из 500 таблиц, то вы явно не продумали структуру базы. Но если вам прям позарез хочется это сделать, то вы можете либо выполнить 500 запросов, либо один Union запрос с 500 подзапросами. Второй вариант - для тех любителей острых ощущений, которые считают, что у оптимизатора их субд отменное здоровье и крепкие нервы.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855796
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> 2. Если лень заводить 250 промежуточных таблиц - заведите одну, где будет
> дополнительно указываться "имя связанной таблицы".

Нет, не лень. Просто смысла нет заводить 250 лишних таблиц. А вот одна таблица - это хорошо, только тогда как быть с ссылочной целостностью? А удаление/добавление/хранение истории? А версионность структуры данных?

> 3. Если вам надо выбрать записи из 500 таблиц, то вы явно не продумали
> структуру базы.

Уверяю Вас, это не так. 3 н. ф. - как норма проектирования.

> Но если вам прям позарез хочется это сделать, то вы можете либо выполнить 500
> запросов, либо один Union запрос с 500 подзапросами.

Не хочу. Эффект разреженной матрицы: запрос вернет очень немного записей. Из пушки по воробьям.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855809
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> 2. Если лень заводить 250 промежуточных таблиц - заведите одну, где будет
> дополнительно указываться "имя связанной таблицы".

Нет, не лень. Просто смысла нет заводить 250 лишних таблиц. А вот одна таблица - это хорошо, только тогда как быть с ссылочной целостностью? А удаление/добавление/хранение истории? А версионность структуры данных?

> 3. Если вам надо выбрать записи из 500 таблиц, то вы явно не продумали
> структуру базы.

Уверяю Вас, это не так. 3 н. ф. - как норма проектирования.

> Но если вам прям позарез хочется это сделать, то вы можете либо выполнить 500
> запросов, либо один Union запрос с 500 подзапросами.

Не хочу. Эффект разреженной матрицы: запрос вернет очень немного записей. Из пушки по воробьям.

3 нф - не панацея от неправильного проектирования.
Если у вас однотипная информация разбросана по 500 таблицам - то со структурой явно что-то не так.
Не вижу никаких проблем с удалением, добавлением и изменением записей - все как обычно, транзакцию открыли, добавили в одну, вторую, промежуточную - транзакцию закрыли. Если так хочется ссылочной целостности - в каждой из пятисот таблиц заведите FK на промежуточную таблицу, PK сделайте глобально уникальными - назначайте со сдвигом в 1000 для каждой таблицы (в первой - 1, 1001, 2001..., во второй - 2, 2002, 2003...). С внезапно возникшей версионностью делайте что хотите, обычно она нахрен не нужна, но если сильно хочется - заводите архивы.
Если так сильно ломает опрашивать все пятьсот таблиц - заведите одну и в ней храните, в какой таблице слово встречается. Потом динамически генерируйте селекты и вперед.
Я одно не пойму - куда вы клоните ? Сначала вы рассовали однородную информацию в пятьсот мест, а теперь жалуетесь, что ее трудно собирать. Ну дык ! А когда вам говорят, что не надо ее рассовывать - вы меня уверяете, что все сделано правильно.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855826
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> 3 нф - не панацея от неправильного проектирования.
> Если у вас однотипная информация разбросана по 500 таблицам - то со
> структурой явно что-то не так.

С чего Вы взяли, что я разбросал однотипные данные по 500 таблицам? - нет, все хорошо и с нормализацией, и с описанием.

> Не вижу никаких проблем с удалением, добавлением и изменением записей -
> все как обычно, транзакцию открыли, добавили в одну, вторую,
> промежуточную - транзакцию закрыли.

Да я тоже проблем не вижу. Хотелось, чтобы Вы это сформулировали. ;)

> Если так хочется ссылочной целостности

;)

> - в каждой из пятисот таблиц заведите FK на промежуточную таблицу, PK
> сделайте глобально уникальными - назначайте со сдвигом в 1000 для каждой
> таблицы (в первой - 1, 1001, 2001..., во второй - 2, 2002, 2003...).

Не пойдет. Никто не гарантирует, что 1000 записей для одной таблицы хватит.

> С внезапно возникшей версионностью делайте что хотите, обычно она нахрен
> не нужна, но если сильно хочется - заводите архивы.

;)) Хм... у меня версионность внезапно не возникает. На самом деле еще много подзадач есть; мы ж не конкретный проект обсуждаем, а все-таки надстройку, правда? - чего ж я буду несущественными деталями грузить? О чем это я? Ага, версионность. Мне казалось, что обычно она как раз нужна. Ладно, забудем версионность.

> Если так сильно ломает опрашивать все пятьсот таблиц - заведите одну и в
> ней храните, в какой таблице слово встречается. Потом динамически
> генерируйте селекты и вперед.

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

> Я одно не пойму - куда вы клоните?

Все, уже закончил клонить. ;) Берем предложенное Вами возможное решение: используем одну таблицу для связей между "супертаблицей" и остальными таблицами базы данных. Весь требуемый функционал (ссылочную целостность, апдейты, динамические запросы и пр.) реализуем за пределами базы данных. Собственно, получили часть той надстройки, о которой я говорил. ;)) Я всего лишь чуть видоизменил _предложенное Вами_ решение. ;)) Возражения?

> Сначала вы рассовали однородную информацию в пятьсот мест, а теперь
> жалуетесь, что ее трудно собирать.

Да не рассовывал я ее никуда. Если мой пример не нравится, возьмите любую Вашу базу данных и попробуйте подключить к ней словарь. Ко всем таблицам, где это имеет смысл. Не то же самое получилось? ;)
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855829
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> 3 нф - не панацея от неправильного проектирования.
> Если у вас однотипная информация разбросана по 500 таблицам - то со
> структурой явно что-то не так.

С чего Вы взяли, что я разбросал однотипные данные по 500 таблицам? - нет, все хорошо и с нормализацией, и с описанием.

> Не вижу никаких проблем с удалением, добавлением и изменением записей -
> все как обычно, транзакцию открыли, добавили в одну, вторую,
> промежуточную - транзакцию закрыли.

Да я тоже проблем не вижу. Хотелось, чтобы Вы это сформулировали. ;)

> Если так хочется ссылочной целостности

;)

> - в каждой из пятисот таблиц заведите FK на промежуточную таблицу, PK
> сделайте глобально уникальными - назначайте со сдвигом в 1000 для каждой
> таблицы (в первой - 1, 1001, 2001..., во второй - 2, 2002, 2003...).

Не пойдет. Никто не гарантирует, что 1000 записей для одной таблицы хватит.

> С внезапно возникшей версионностью делайте что хотите, обычно она нахрен
> не нужна, но если сильно хочется - заводите архивы.

;)) Хм... у меня версионность внезапно не возникает. На самом деле еще много подзадач есть; мы ж не конкретный проект обсуждаем, а все-таки надстройку, правда? - чего ж я буду несущественными деталями грузить? О чем это я? Ага, версионность. Мне казалось, что обычно она как раз нужна. Ладно, забудем версионность.

> Если так сильно ломает опрашивать все пятьсот таблиц - заведите одну и в
> ней храните, в какой таблице слово встречается. Потом динамически
> генерируйте селекты и вперед.

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

> Я одно не пойму - куда вы клоните?

Все, уже закончил клонить. ;) Берем предложенное Вами возможное решение: используем одну таблицу для связей между "супертаблицей" и остальными таблицами базы данных. Весь требуемый функционал (ссылочную целостность, апдейты, динамические запросы и пр.) реализуем за пределами базы данных. Собственно, получили часть той надстройки, о которой я говорил. ;)) Я всего лишь чуть видоизменил _предложенное Вами_ решение. ;)) Возражения?

> Сначала вы рассовали однородную информацию в пятьсот мест, а теперь
> жалуетесь, что ее трудно собирать.

Да не рассовывал я ее никуда. Если мой пример не нравится, возьмите любую Вашу базу данных и попробуйте подключить к ней словарь. Ко всем таблицам, где это имеет смысл. Не то же самое получилось? ;)

С генерированием уникального ключа вы не поняли - я предлагаю не диапазон ключей выделать (1-1000 для первой таблицы, 1001-2000 для второй) а сдвиг и номер : для первой таблицы последние три разряда всегда 001, для второй - 002 и т.д. Так что для тысячи таблиц такой схемы вам должно хватить, а нет - увеличьте сдвиг.
Я последний раз повторяю : в нормально спроектированной системе не бывает запросов к пятистам таблицам одновременно. Можете принять это за аксиому. Или лучше поступим как с адиском - вы рассказываете условие, я придумываю схему без пятисот таблиц , мы сверяем производительность.

И какой такой словарь вы все время пытаетесь подключить "ко всем таблицам" ? Словарь чего ? Чем вас не устраивают systables / syscolumns ?
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855834
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> С генерированием уникального ключа вы не поняли - я предлагаю не диапазон
> ключей выделать (1-1000 для первой таблицы, 1001-2000 для второй) а сдвиг и
> номер:

Да, действительно не понял. ОК, снимается.

> Я последний раз повторяю : в нормально спроектированной системе не бывает
> запросов к пятистам таблицам одновременно. Можете принять это за аксиому.

Вот здесь я с Вами абсолютно согласен. Действительно не бывает. Но связать эти пятьсот таблиц между собой - просто необходимо. ;))

> Или лучше поступим как с адиском - вы рассказываете условие, я придумываю
> схему без пятисот таблиц , мы сверяем производительность.

У Вас содержимое баз данных на русском языке? Подключите к любой из Ваших баз данных словарь Ожегова. Любым образом. Ничего сверять не нужно, нужна только схема.

> И какой такой словарь вы все время пытаетесь подключить "ко всем таблицам"?
> Словарь чего ? Чем вас не устраивают systables / syscolumns ?

;) Да при чем здесь системные таблицы? Я ж говорю, просто обычный языковой словарь. Как пример. Не хотите словарь, - давайте представим, что есть куча картинок, документов или еще чего. Что больше нравится?
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855856
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю опустить голову в пустую бочку и закричать: "Оу-а-а! Пятьсот табли-и-иц!", а оппоненту в это же время колотить по бочке палкой, стараясь его перешуметь.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855862
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621
> Я последний раз повторяю : в нормально спроектированной системе не бывает
> запросов к пятистам таблицам одновременно. Можете принять это за аксиому.

Вот здесь я с Вами абсолютно согласен. Действительно не бывает. Но связать эти пятьсот таблиц между собой - просто необходимо. ;))

> Или лучше поступим как с адиском - вы рассказываете условие, я придумываю
> схему без пятисот таблиц , мы сверяем производительность.

У Вас содержимое баз данных на русском языке? Подключите к любой из Ваших баз данных словарь Ожегова. Любым образом. Ничего сверять не нужно, нужна только схема.

> И какой такой словарь вы все время пытаетесь подключить "ко всем таблицам"?
> Словарь чего ? Чем вас не устраивают systables / syscolumns ?

;) Да при чем здесь системные таблицы? Я ж говорю, просто обычный языковой словарь. Как пример. Не хотите словарь, - давайте представим, что есть куча картинок, документов или еще чего. Что больше нравится?

Я как-то слабо понимаю что такое "подключите" в вашей трактовке.
Если вы собираетесь каждое текстовое поле проверять на наличие в словаре, то (забыв про различные формы одного слова) достаточно навесить триггер на вставку. Поскольку словарь - вещь статичная, то никаких каскадных удалений и RI не надо. А если вас интересует, в каких таблицах встречается данное слово - то заведите себе козу, пардон, таблицу формата слово/таблица, и вставляйте туда записи при insert в любую из ваших таблиц. В чем проблема-то ?
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855965
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Я как-то слабо понимаю что такое "подключите" в вашей трактовке.

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

> Если вы собираетесь каждое текстовое поле проверять на наличие в словаре,

Yes! Получилось. ;))

> то (забыв про различные формы одного слова) достаточно навесить триггер на
> вставку.

Не, забывать про различные формы слова мы не будем. Будем корректны. Триггеры - триггерами, а связи нужны для того, чтобы иметь возможность сделать обратную выборку. Т. е. знать, в каких таблицах выбранное из словаря слово встречается.

> Поскольку словарь - вещь статичная, то никаких каскадных удалений и RI не
> надо.

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

> А если вас интересует, в каких таблицах встречается данное слово - то
> заведите себе козу, пардон, таблицу формата слово/таблица, и вставляйте
> туда записи при insert в любую из ваших таблиц. В чем проблема-то ?

Да нет проблем. ;) Вы снова предложили решение с одной таблицей. Так я ж об этом Вам и пытался рассказать с самого начала. ;)) Т. е. в результате _Ваших умозаключений_ мы пришли к решению, которое 1. не является типовым для реляционной базы данных, 2. тем не менее хорошо формализуется и может быть реализовано в виде внешнего (к базе данных) модуля. Теперь, надеюсь, нет возражений? ;)) Вы же все сами сформулировали, - я только немного _Ваше решение_ причесал.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32855974
Фотография adisk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статья относящаяся как раз к теме топика.

http://www.ibase.ru/devinfo/oop_rdbms.htm
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856025
Фотография adisk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю не только мне интересна тема данного форума.
И поэтому вот еще ссылка про ОО над РБД:
http://www.stikriz.narod.ru/art/oobd.htm
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856042
Фотография adisk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реализвал вариант БД с одной таблицей. (где все данные зранятся в одной таблице)
эксперимент проводил на FoxPro

Для разных типов данных были созданы поля и
витоге таблица с данными выглядела так:
id_s - Numeric(20) код экземпляра
id_p - Character (20) код свойства экземпляра (символьный)
для чисел data_N - numeric(20,5)
для строк data_С - character (50)
для дат data_D - date

Все как и описывал в предыдущих постах.
Заполнил таблицу как кто-то предлагал выше:
customers (id, name)- 100 000 записей
orders (id, id_cust, sum, date, state)- 1 000 000 записей

Получилось 6 200 000 строк! По 2 строки на 100 000 customers'ов и
по 6 записей на 1 000 000 строк orders)
Базу проиндексировал по всем полям. Чертовкси долго это проиходило.
База заняла 450 Мегабайт. (без индеков) Конечно, из-за лишних полей.

Требовалось получить сумму свойства sum
с условиями
state="Y"
date between {^2004/01/01} and {^2004/12/31}
с группировкой по customer'ам

Работало около 10 секунд.
(Cel-4 2200M / ОЗУ 512М )

Работаю над оптимизацией.
Как снова буду на работе вышлю код программы с запросами.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856098
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 adisk :
Я знал, что вам понравятся 6 миллионов записей :-)
Как насчет select ? фокс фоксом, но хотелось бы увидеть текст запроса на SQL.
И, кстати, поля разных типов неплохо бы разнести по разным таблицам.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856101
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> Я как-то слабо понимаю что такое "подключите" в вашей трактовке.

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

> Если вы собираетесь каждое текстовое поле проверять на наличие в словаре,

Yes! Получилось. ;))

> то (забыв про различные формы одного слова) достаточно навесить триггер на
> вставку.

Не, забывать про различные формы слова мы не будем. Будем корректны. Триггеры - триггерами, а связи нужны для того, чтобы иметь возможность сделать обратную выборку. Т. е. знать, в каких таблицах выбранное из словаря слово встречается.

> Поскольку словарь - вещь статичная, то никаких каскадных удалений и RI не
> надо.

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

> А если вас интересует, в каких таблицах встречается данное слово - то
> заведите себе козу, пардон, таблицу формата слово/таблица, и вставляйте
> туда записи при insert в любую из ваших таблиц. В чем проблема-то ?

Да нет проблем. ;) Вы снова предложили решение с одной таблицей. Так я ж об этом Вам и пытался рассказать с самого начала. ;)) Т. е. в результате _Ваших умозаключений_ мы пришли к решению, которое 1. не является типовым для реляционной базы данных, 2. тем не менее хорошо формализуется и может быть реализовано в виде внешнего (к базе данных) модуля. Теперь, надеюсь, нет возражений? ;)) Вы же все сами сформулировали, - я только немного _Ваше решение_ причесал.

Проверка на наличие в глобальном словаре - это не совсем связь. Так что 250 промежуточных таблиц вам изначально были не нужны. Как и RI, целостность изменений, версионность и прочие страсти, которые вы рассказывали. Не вижу ничего, что делает эту задачу неудобной для реляционной бд. И решение совершенно типовое, первое, что приходит в голову. Над такими решениями проектировщик вобще не должен задумываться. Так что пардон, но ваш пример лично мне ничего не доказал.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856119
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Проверка на наличие в глобальном словаре - это не совсем связь.

А где я связь считал тождественной проверке?

> Так что 250 промежуточных таблиц вам изначально были не нужны.

Мне - действительно не нужны. Я уже говорил, что не буду пользоваться таким решением.

> Как и RI, целостность изменений, версионность и прочие страсти, которые вы
> рассказывали.

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

> Не вижу ничего, что делает эту задачу неудобной для реляционной бд. И решение
> совершенно типовое, первое, что приходит в голову. Над такими решениями
> проектировщик вобще не должен задумываться. Так что пардон, но ваш пример
> лично мне ничего не доказал.

Хм... а и не было желания ничего никому доказать. ;) Было желание заставить Вас предложить такое решение, которое невозможно было бы описать в терминах "сущность" - "связь" без системных таблиц. Чего Вы очень не хотели, настаивая на традиционном связывании сущностей. Но что, собственно, практически без труда и получилось. ;) А нашли Вы в этом какие-то доказательства чего-то или не нашли, - мне лично совершенно наплевать. ;) Ы?
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856140
vybegallo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> Проверка на наличие в глобальном словаре - это не совсем связь.

А где я связь считал тождественной проверке?


> Не вижу ничего, что делает эту задачу неудобной для реляционной бд. И решение
> совершенно типовое, первое, что приходит в голову. Над такими решениями
> проектировщик вобще не должен задумываться. Так что пардон, но ваш пример
> лично мне ничего не доказал.

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

Ну если вы согласны, что проверка наличия не есть связь, то в вашей задаче, увы, нет проблемы "сущность-связь".
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856146
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну если вы согласны, что проверка наличия не есть связь,

Кто с этим спорил?

> то в вашей задаче, увы, нет проблемы "сущность-связь".

Хех, да и проблемы-то такой нет. Т. е. вообще. Как класса. Н-да... жаль, что мы говорим на разных языках. Извините, но у меня нет ни желания, ни возможности пересказывать курс проектирования баз данных. Спасибо за обсуждение.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856371
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> 2. Если лень заводить 250 промежуточных таблиц - заведите одну, где будет
> дополнительно указываться "имя связанной таблицы".

Нет, не лень. Просто смысла нет заводить 250 лишних таблиц. А вот одна таблица - это хорошо, только тогда как быть с ссылочной целостностью? А удаление/добавление/хранение истории? А версионность структуры данных?

> 3. Если вам надо выбрать записи из 500 таблиц, то вы явно не продумали
> структуру базы.

Уверяю Вас, это не так. 3 н. ф. - как норма проектирования.

> Но если вам прям позарез хочется это сделать, то вы можете либо выполнить 500
> запросов, либо один Union запрос с 500 подзапросами.

Не хочу. Эффект разреженной матрицы: запрос вернет очень немного записей. Из пушки по воробьям.

Возможно я смогу решить ваши проблемы, если они примут форму коммерческого проекта. Иногда проще просто сделать чем теоретизировать, кто то же бывает первым
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856381
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Возможно я смогу решить ваши проблемы, если они примут форму коммерческого
> проекта.

Ваша квалификация вызывает сомнения в том, что Вы хотя бы поняли, о чем речь.

> Иногда проще просто сделать чем теоретизировать, кто то же бывает первым

Для начала Вам неплохо было бы поиметь хотя бы небольшое представление о проектировании. А уж потом браться за коммерческие проекты. А со своими проблемами я как-нибудь сам разберусь.
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856464
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря теперь вы произвели на меня впечатление просто канцеляриста, которых во все времена было великое множество! Но вот создали они хоть что-нибудь?
Во первых со скрытым забралом, а это явный признак не дискутировать и не замечать. Стремление скрыться тоже о чем то говорит. Ну и как водится ...мимикрия, т.е. человек усваивает определенное количество фраз и ...
...
Рейтинг: 0 / 0
Объектная надстройка над релационной СУБД
    #32856503
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Модератору: сообщение не флейма ради, но исключительно сохранения статус кво для.

> Честно говоря теперь вы произвели на меня впечатление просто канцеляриста,

Дружище, мне абсолютно наплевать, какое впечатление я на Вас произвел и почему.

Не нужно прятать за словоблудием недостаток знаний. Не нужно браться за работу, которую Вы представления не имеете как делать. Не нужно использовать обсуждение для получения работы. Хотите кушать - есть форум "работа", там и развлекайтесь.

Пожалуйста, не утруждайте себя комментариями, - потратьте это время с пользой, например, прочтите что-нибудь полезное.
...
Рейтинг: 0 / 0
25 сообщений из 438, страница 8 из 18
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объектная надстройка над релационной СУБД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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