powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблиц: чем больше, тем лучше или наоборот?
25 сообщений из 62, страница 2 из 3
Таблиц: чем больше, тем лучше или наоборот?
    #34443158
chron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE, можно предположить, что карты заполняются не каждый день, общее количество карт -тысячи ?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443233
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE softwarer AXAEА если куча большая - даже человек в сотне вещей будет перебирать практически все вещи по порядку,
Да ладно тебе. Он просто развалит ее по принципу половина-направо, половина-налево и снова увидит нужное :)

Но именно поэтому начиная с определенного размера кучи человек раскладывает ее по полкам в шкафу (читай - по большему количеству тех же куч). Для малоселективных критериев (а твой флаг - из таких) партиционирование - один из вариантов эффективного выбора.

А на тему "не понял" - я бы советовал всерьез разобраться прежде, чем начинать серьезно работать, а до тех пор, пока не разобрался - не пытаться думать о сложных вещах, делать "так как естественнее".

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

По поводу таблиц, как уже писали их должно быть столько сколько нужно, при сливании таблиц
связи в одну решающую роль должно играть на сколько эти связи совместимы, если остальные
аттрибуты и ограничения на них одинаковы то можно и слить а если разные, то ты просто не
сможешь реализовать ограничения стандартными средствами СУБД.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443247
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE Melaniнасколько я помню INNER в операторе Join указывает, что надо выбирать неповторяющиеся записи.
Неповторяющиеся - это DISTINCT
А INNER JOIN, как написано в справочниках, осуществляет полное объединение таблиц.
полное объединение это ведь full join.
наверное я чего-то подзабыла.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443398
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что ссылочную целостность уже отменили или как вы ее собрались поддерживать с одной таблицей связей?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443495
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEP.S. я вспомнил, почему задал этот вопрос - я где-то на форуме давно читал, что использование INNER JOIN для связки таблиц, вместо WHERE t1.id=t2.id замедляет выполнение запроса минимум в два раза. Меня это тогда поразило, так как считал, что это одно и то же.Ах вот в чем дело... Поверьте, вас ввели в заблуждение (если говорить грубее, то это написал какой-то кретин). Вы были правы, это действительно одно и то же, просто разные формы записи.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443532
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViktoriankaА что ссылочную целостность уже отменили или как вы ее собрались поддерживать с одной таблицей связей?Присоединяюсь. В "решении" с одной "отфлажкованной" таблицей связности не задашь декларативно внешние ключи.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443559
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir ViktoriankaА что ссылочную целостность уже отменили или как вы ее собрались поддерживать с одной таблицей связей?Присоединяюсь. В "решении" с одной "отфлажкованной" таблицей связности не задашь декларативно внешние ключи.
А это почему, можно примерчик?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443617
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требований было меньше и все казалось простым. И я действительно один работаю... Но политики предприятия наверное здесь не стоит касаться, а то если так все рассудить - я должен буду остаться без работы.((

Есть такая глобальная проблема, которая меня все чаще беспокоит: код пишется практически один и тот же, разница только в паре строк. Например поиск по одному полю и поиск по другому полю - вроде один и тот же алгоритм, код будет похожим, но с парой измененных строк. Ладно если эти мне удастся "объединить", а если допустим в условии еще и добавится "за исключением тех, где в таком-то поле есть..." - это же еще умотаться кода будет - а алгоритм не изменится. Копируешь код, добавляешь пару строк и вот все работает.. А если так много раз сделать - запутаться запросто... Да и неприятно - один и тот же код копируешь и меняешь, добавляешь пару строк...((

А отдельная проблема на отдельном уровне и десятки тысяч таблиц... Тут дурацкая закономерность: девять к одному. Это означает, что девяносто процентов однородной информации обрабатывается одним способом, а десять - другим (это в смысле вдобавок(!!!), а не взамен, к способу обработки тех 90 процентов), и в других местах учитываются. Причем эти десять в свою очередь могут еще распадаться на 9:1 и причудливо переплетаться с вышестоящими уровнями... ((( Ну самый простой пример - очень не хочется делать таблицы с однородной информацией, где лишь в десяти строках из ста заполнено какое-то поле только потому, что эти десять строк нужно обрабатывать еще и по-другому...

P.S. Выговорился... Я просто уже четыре дня не могу вообразить удовлетворяющую меня структуру базы из двух десятков таблиц. База данных с тридцатью уже есть, которая делает то же самое - но ей так неудобно управлять, изменять, модифицировать... Потому что там просто не предусматривал я этого.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443729
Viktorianka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEкод пишется практически один и тот же, разница только в паре строк. Например поиск по одному полю и поиск по другому полю - вроде один и тот же алгоритм, код будет похожим, но с парой измененных строк.

Код у вас на сервере БД или отдельно? Сервер БД какой? Можно юзать динамические запросы для таких целей. Можно взять кодогенерилку, типа CodeSmith и настроить шаблоны для стандартных операций. Можно вообще взять какой-нибудь ORM И не заморачиваться способом хранения данных, если это вызывает такие трудности.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443731
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEДоброго времени суток всем!
Есть такой вопрос:
Как сказывается на быстродействии то, что я стараюсь делать как можно меньше таблиц? Например: есть таблицы T1, T2, T3. Отношения между ними: T1#T2=M:M, T1#T3=M:M. То есть нужны еще две таблицы связей. Что лучше с точки зрения производительности: две таблицы связей или лучше иметь одну, но с флажком: в ней будет одно поле для id первой T1, затем еще одно поле - id записи одной из двух других и еще флажок, значение в котором будет показывать, какой же именно из вторых таблиц записано в таблице связей второе id?

Надо стараться избегать большого количества таблиц с отношением М:М и в промежуточной таблица всегда добавлять поле с первичным ключем.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443778
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888Надо стараться избегать большого количества таблиц с отношением М:М и в промежуточной таблица всегда добавлять поле с первичным ключем.Оба утверждения являются голословными, как минимум.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443794
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraDen mir ViktoriankaА что ссылочную целостность уже отменили или как вы ее собрались поддерживать с одной таблицей связей?Присоединяюсь. В "решении" с одной "отфлажкованной" таблицей связности не задашь декларативно внешние ключи.
А это почему, можно примерчик?Потому, что внешний ключ по определению ссылается на ключ конкретной таблицы. Явно указанной таблицы. И его нельзя декларативно задать так, чтобы он ссылался на ключи разных таблиц. Синтаксис:
Код: plaintext
1.
2.
[ CONSTRAINT constraint_name ] FOREIGN KEY [ ( column [ ,...n ] ) ] 
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
ref_table может быть только одна.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443800
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA sergey888Надо стараться избегать большого количества таблиц с отношением М:М и в промежуточной таблица всегда добавлять поле с первичным ключем.Оба утверждения являются голословными, как минимум.+1
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443894
гм...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AXAEТребований было меньше и все казалось простым. И я действительно один работаю... Но политики предприятия наверное здесь не стоит касаться, а то если так все рассудить - я должен буду остаться без работы.((

Есть такая глобальная проблема, которая меня все чаще беспокоит: код пишется практически один и тот же, разница только в паре строк. Например поиск по одному полю и поиск по другому полю - вроде один и тот же алгоритм, код будет похожим, но с парой измененных строк. Ладно если эти мне удастся "объединить", а если допустим в условии еще и добавится "за исключением тех, где в таком-то поле есть..." - это же еще умотаться кода будет - а алгоритм не изменится. Копируешь код, добавляешь пару строк и вот все работает.. А если так много раз сделать - запутаться запросто... Да и неприятно - один и тот же код копируешь и меняешь, добавляешь пару строк...((

А отдельная проблема на отдельном уровне и десятки тысяч таблиц... Тут дурацкая закономерность: девять к одному. Это означает, что девяносто процентов однородной информации обрабатывается одним способом, а десять - другим (это в смысле вдобавок(!!!), а не взамен, к способу обработки тех 90 процентов), и в других местах учитываются. Причем эти десять в свою очередь могут еще распадаться на 9:1 и причудливо переплетаться с вышестоящими уровнями... ((( Ну самый простой пример - очень не хочется делать таблицы с однородной информацией, где лишь в десяти строках из ста заполнено какое-то поле только потому, что эти десять строк нужно обрабатывать еще и по-другому...

P.S. Выговорился... Я просто уже четыре дня не могу вообразить удовлетворяющую меня структуру базы из двух десятков таблиц. База данных с тридцатью уже есть, которая делает то же самое - но ей так неудобно управлять, изменять, модифицировать... Потому что там просто не предусматривал я этого. очень интересное, интригующее, причудливое изложение ... если чесно - ничо не понял :( раскройте тему поподробнее ?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443910
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirПотому, что внешний ключ по определению ссылается на ключ конкретной таблицы. Явно указанной таблицы. И его нельзя декларативно задать так, чтобы он ссылался на ключи разных таблиц. Синтаксис:
Код: plaintext
1.
2.
[ CONSTRAINT constraint_name ] FOREIGN KEY [ ( column [ ,...n ] ) ] 
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
ref_table может быть только одна.
Так два же поля одно на одну таблицу ссылается, другое на другую, какие проблемы то?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443932
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraDen mirПотому, что внешний ключ по определению ссылается на ключ конкретной таблицы. Явно указанной таблицы. И его нельзя декларативно задать так, чтобы он ссылался на ключи разных таблиц. Синтаксис:
Код: plaintext
1.
2.
[ CONSTRAINT constraint_name ] FOREIGN KEY [ ( column [ ,...n ] ) ] 
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
ref_table может быть только одна.
Так два же поля одно на одну таблицу ссылается, другое на другую, какие проблемы то?Специально для ваc скопировал исходную постановку задачи. Жирным я выделил ключевой момент:
AXAEесть таблицы T1, T2, T3. Отношения между ними: T1#T2=M:M, T1#T3=M:M. То есть нужны еще две таблицы связей. Что лучше с точки зрения производительности: две таблицы связей или лучше иметь одну, но с флажком: в ней будет одно поле для id первой T1, затем еще одно поле - id записи одной из двух других и еще флажок, значение в котором будет показывать, какой же именно из вторых таблиц записано в таблице связей второе id?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443964
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir OraDen mirПотому, что внешний ключ по определению ссылается на ключ конкретной таблицы. Явно указанной таблицы. И его нельзя декларативно задать так, чтобы он ссылался на ключи разных таблиц. Синтаксис:
Код: plaintext
1.
2.
[ CONSTRAINT constraint_name ] FOREIGN KEY [ ( column [ ,...n ] ) ] 
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
ref_table может быть только одна.
Так два же поля одно на одну таблицу ссылается, другое на другую, какие проблемы то?Специально для ваc скопировал исходную постановку задачи. Жирным я выделил ключевой момент:
AXAEесть таблицы T1, T2, T3. Отношения между ними: T1#T2=M:M, T1#T3=M:M. То есть нужны еще две таблицы связей. Что лучше с точки зрения производительности: две таблицы связей или лучше иметь одну, но с флажком: в ней будет одно поле для id первой T1, затем еще одно поле - id записи одной из двух других и еще флажок, значение в котором будет показывать, какой же именно из вторых таблиц записано в таблице связей второе id?
Извиняюсь, я тот пост не очень внимательно прочитал, запихнуть в одно поле ссылку
на все таблицы, у меня это даже в голове не укладывается... Хотя когда то давно я прикидывал
что любую базу можно запихнуть всего в несколько таблиц, только работать то потом как с ней...
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443984
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEДоброго времени суток всем!
Есть такой вопрос:
Как сказывается на быстродействии то, что я стараюсь делать как можно меньше таблиц?
Неоднозначно сказывается.
С одной стороны - пока денормализованная результирующая таблица AB небольшая (сотни тыс. строк, сотни Мб), выборка из неё быстрее, чем взятие произведения A JOIN B ON...
С другой стороны - при увеличении объёма данных общий объём таблиц A и B растёт строго как A+B, а денормализованной AB - не медленнее, чем A+B, вплоть до A*B. И тут начинает иметь значение скорость дисковой подсистемы, объём ОЗУ и т.д.
С третьей стороны - правильное индексирование может значительно ускорить чтение (а с четвёртой переиндексирование - замедлить изменение/добавление).
С пятой стороны - поддержка целостности данных при добавлении и изменении в случае AB может потребовать дополнительных накладных расходов.
С шестой стороны - есть особенности конкретных СУБД.
И таких сторон - великое множество. Мой Вам совет - на занимайтесь ранней оптимизацией: старайтесь соблюдать 3НФ.

AXAE
Например: есть таблицы T1, T2, T3. Отношения между ними: T1#T2=M:M, T1#T3=M:M. То есть нужны еще две таблицы связей. Что лучше с точки зрения производительности: две таблицы связей или лучше иметь одну, но с флажком: в ней будет одно поле для id первой T1, затем еще одно поле - id записи одной из двух других и еще флажок, значение в котором будет показывать, какой же именно из вторых таблиц записано в таблице связей второе id?
Лучше 2 таблицы связей. Одна таблица с флажком - явно значительно более сложное решение. Для поддержки целостности средствами СУБД нужно будет долго писать и поддерживать ХП вместо того, чтобы декларативно сказать что-нибудь наподобие "add constraint... references... on delete cascade on update cascade", или того проще - пару раз щёлкнуть мышкой в CASE-средстве.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444002
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE<...>
Есть такая глобальная проблема, которая меня все чаще беспокоит: код пишется практически один и тот же, разница только в паре строк.
<...>
Модульность Вас спасёт! :) Если не хотите ОО модульности - используйте функциональную.

AXAE
<...>Копируешь код, добавляешь пару строк и вот все работает.. А если так много раз сделать - запутаться запросто... Да и неприятно - один и тот же код копируешь и меняешь, добавляешь пару строк...((<...>
Copy/Paste больше двух раз нельзя. На 3-й (максимум 4-й) раз нужно выносить в отдельный модуль.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444015
OraDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRavenМой Вам совет - на занимайтесь ранней оптимизацией: старайтесь соблюдать 3НФ.
+1

to AXAE
А то дойдете до того что нужно всего четыре таблицы - таблицу типов,
таблицу объектов, таблицу связей между объектами и таблицу связей между связями
и все с рекурсией ))
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444173
012345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создавайте для каждой сущности предметной области отдельную таблицу и Ваши волосы будут густыми и шелковистыми :)
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444313
De Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OraDenА то дойдете до того что нужно всего четыре таблицы - таблицу типов,
таблицу объектов, таблицу связей между объектами и таблицу связей между связями
и все с рекурсией ))

Возможно, дурацкий вопрос: а почему нельзя именно так сделать?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444613
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
De GuestВозможно, дурацкий вопрос: а почему нельзя именно так сделать?

Сделать можно. Получите богатый опыт разработки собственной СУБД. Потратите массу времени, и, возможно, станете гуру. Но денег, скорее всего, не заработаете.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444618
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRaven De GuestВозможно, дурацкий вопрос: а почему нельзя именно так сделать?

Сделать можно. Получите богатый опыт разработки собственной СУБД. Потратите массу времени, и, возможно, станете гуру. Но денег, скорее всего, не заработаете.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444624
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chronAXAE, можно предположить, что карты заполняются не каждый день, общее количество карт -тысячи ?
Карты заполняются каждый день, карт действительно тысячи, на них кучи диагнозов, рекомендаций, каких-то полей специализированных для обследования...
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблиц: чем больше, тем лучше или наоборот?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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