powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблиц: чем больше, тем лучше или наоборот?
62 сообщений из 62, показаны все 3 страниц
Таблиц: чем больше, тем лучше или наоборот?
    #34442204
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем!
Есть такой вопрос:
Как сказывается на быстродействии то, что я стараюсь делать как можно меньше таблиц? Например: есть таблицы T1, T2, T3. Отношения между ними: T1#T2=M:M, T1#T3=M:M. То есть нужны еще две таблицы связей. Что лучше с точки зрения производительности: две таблицы связей или лучше иметь одну, но с флажком: в ней будет одно поле для id первой T1, затем еще одно поле - id записи одной из двух других и еще флажок, значение в котором будет показывать, какой же именно из вторых таблиц записано в таблице связей второе id?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442229
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если свалить все свои шмотки посредине комнаты, то утром можно будет одеться значительно быстрее. Не надо лазить в шкаф. Верно до тех пор, пока шмоток не очень много. :)
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442254
Думающий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы не сказал что чем больше таблиц тем быстрее и наоброт, тут все зависит от задачи и что и как вы планируете выбирать/загружать потом из этих таблиц.
Как всегда нужно выбрать золотую середину :)
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442255
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть я так понял, что серверу значительно быстрее работать с одной таблицей связей и флажком, чем с десятком разных, но без флажка?!
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442260
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSERT и SELECT таблиц будет делаться на несколько порядков больше, чем UPDATE. Работа с таблицами связей, если их двое - разница невелика, меньше, чем на порядок.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442410
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите. а как вы собираетесь заносить данные в таблицу связей + помечать нужные флажком?? это у вас получится??

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

IMHO, к вашему случаю отлично подходят известные слова Дональда Кнута "Premature optimization is the root of all evil".
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442529
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEКак сказывается на быстродействии то, что я стараюсь делать как можно меньше таблиц?
Скорее - плохо сказывается, хотя это изрядно бессмысленный вопрос. Его "бытовая" аналогия примерно такова - "как сказывается на безопасности движения то, что я стараюсь всегда ехать в левом ряду". Таблиц нужно делать не "как можно меньше", а "столько, сколько нужно, и не больше".

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

Улыбайтесь чаще, людей это раздражает.

Получится, это ведь несложно, в таблице будут строки:
id1-id-T2 {T1.id1-T2.id} - id1 - из первой таблицы, id - из второй
id1-id-T3 {T1.id1-T3.id} - id1 - из первой таблицы, id - из третьей
id1-id-T3 {T1.id1-T3.id} - id1 - из первой таблицы, id - из третьей
id1-id-T3 {T1.id1-T3.id} - id1 - из первой таблицы, id - из третьей
id1-id-T2 {T1.id1-T2.id} - id1 - из первой таблицы, id - из второй
Третье поле - это флажок, показывающий, какой таблице принадлежит id2: либо T2, либо T3

Но наверное я действительно в какую-то ерунду здесь полез...
P.S. я вспомнил, почему задал этот вопрос - я где-то на форуме давно читал, что использование INNER JOIN для связки таблиц, вместо WHERE t1.id=t2.id замедляет выполнение запроса минимум в два раза. Меня это тогда поразило, так как считал, что это одно и то же.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442717
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я помню INNER в операторе Join указывает, что надо выбирать неповторяющиеся записи.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442744
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужны таблички связей, то лучше делать их отдельно и независимо друг от друга.
по-моему больше замороки с таблицей в которой есть значения из 2-х таблиц в одном поле + ещё флажок. ты замучаешься с такой организацией.

Улыбайтесь чаще, людей это раздражает.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442762
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melaniнасколько я помню INNER в операторе Join указывает, что надо выбирать неповторяющиеся записи.
Неповторяющиеся - это DISTINCT
А INNER JOIN, как написано в справочниках, осуществляет полное объединение таблиц.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442774
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melaniесли нужны таблички связей, то лучше делать их отдельно и независимо друг от друга.
по-моему больше замороки с таблицей в которой есть значения из 2-х таблиц в одном поле + ещё флажок. ты замучаешься с такой организацией.

Улыбайтесь чаще, людей это раздражает.

Понятно... Спасибо.
Буду разбирать тщательно собранные таблицы с флажками обратно))
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442794
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тебе и ответ - 2 разные кучи шмоток. одна твоя, другая твоей супруги. а живёте в одной комнате. ))) пример более, чем наглядный.

Улыбайтесь чаще, людей это раздражает.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442873
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melaniвот тебе и ответ - 2 разные кучи шмоток. одна твоя, другая твоей супруги. а живёте в одной комнате. ))) пример более, чем наглядный.

Улыбайтесь чаще, людей это раздражает.

Ну что за пример...
Я еще маленький, чтобы у меня была супруга.
А кроме того - люди ведь не индексируют свои вещи)) А компьютер ведь может найти нужную запись из миллиона записей за десяток шагов))
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442897
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEА кроме того - люди ведь не индексируют свои вещи))
Ошибаешься. Вещи в куче как раз хорошо проиндексированы, в небольшой куче эффективность как у хэш-индекса (увидел нужную - взял).
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442916
Melani
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer AXAEА кроме того - люди ведь не индексируют свои вещи))
Ошибаешься. Вещи в куче как раз хорошо проиндексированы, в небольшой куче эффективность как у хэш-индекса (увидел нужную - взял).
тем более какждая вещь уникальная и её ни с какой другой не спутаешь.
на то он и пример, чтобы приводить его из реальной жизни.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442923
chron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поднятая тема не нова, но не мог бы автор озвучить предметную область ? Кажется, недавно я слушал подобный разговор.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442939
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer AXAEА кроме того - люди ведь не индексируют свои вещи))
Ошибаешься. Вещи в куче как раз хорошо проиндексированы, в небольшой куче эффективность как у хэш-индекса (увидел нужную - взял).

Это в маленькой, а у меня куча большая. Там выше пост, про то, что общая куча эффективна, пока она маленькая. А если куча большая - даже человек в сотне вещей будет перебирать практически все вещи по порядку, прежде чем найдет нужное - вот и нету индекса. Он ведь в куче не выбирает сначала все носки, потом все красные, потом левый. Он вроде схватит более или менее похожие носки, потом просмотрит их поочередно)) А вообще должен признаться, не знаю, как работают индексы. Нам показывали, как каким-то хитрым образом идет за четыре шага выборка одной записи из ста тысяч, но я пока не понял, как так получается((
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34442944
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chronПоднятая тема не нова, но не мог бы автор озвучить предметную область ? Кажется, недавно я слушал подобный разговор.

Предметная область - одна флажечная таблица или лучше несколько отдельных таблиц
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443018
Ginas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE chronПоднятая тема не нова, но не мог бы автор озвучить предметную область ? Кажется, недавно я слушал подобный разговор.

Предметная область - одна флажечная таблица или лучше несколько отдельных таблиц

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

Предметная область - одна флажечная таблица или лучше несколько отдельных таблиц

Под предметной областью имеют в виду прикладную задачу. Например: учет вещей в комнате (зверей в зоопарке/товара на складе).

У меня учет карт профосмотров... Карты пациентов, обследования на ней, атрибуты карты, атрибуты обследования, варианты заполнения атрибутов...((
Атрибуты карты и атрибуты обследования на карте, а так же варианты заполнения их - переплетаются. Я назвал сейчас две и еще две сущности - поэтому связок будет четыре... Поэтому разобью свою одну таблицу связок на четыре таблицы...
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443042
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEА если куча большая - даже человек в сотне вещей будет перебирать практически все вещи по порядку,
Да ладно тебе. Он просто развалит ее по принципу половина-направо, половина-налево и снова увидит нужное :)

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

А на тему "не понял" - я бы советовал всерьез разобраться прежде, чем начинать серьезно работать, а до тех пор, пока не разобрался - не пытаться думать о сложных вещах, делать "так как естественнее".
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34443074
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer AXAEА если куча большая - даже человек в сотне вещей будет перебирать практически все вещи по порядку,
Да ладно тебе. Он просто развалит ее по принципу половина-направо, половина-налево и снова увидит нужное :)

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

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

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

AXAEЯ делал "как естественней" - я запутался...
Нормально. Но в таких ситуациях нужно быть очень аккуратным вот с какой точки зрения: если есть проблема, нужно искать, как ее "правильно" решить. Не так уж редко люди ради решения мелкой и несложной в общем-то проблемы принимают "глобально неверные" решения, закладывают глобальную кривизну. Об этом - о том, что каждую проблему нужно решать на своем уровне, не эскалировать ее - всегда нужно помнить.

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

AXAEПросто здесь на предприятии никто до конца не может объяснить, что собственно надо от базы данных (причем упоминается, что сейчас одно, а завтра может быть другое), поэтому я трепыхаюсь с ее структурой...
Работа при определении требований на ходу - отдельная большая тема. Я бы посоветовал создать топик на эту тему в подходящем форме, например в "разработке ИС" - думаю, люди скажут очень много, в том числе и полезного, тема больная.

В любом случае, главное - самому управлять процессом, не давать ему захлестывать, начинать управлять тобой. Задача решаема, две методики я могу назвать сходу, ну а вообще - читайте, оценивайте, и главное - старайтесь верно оценивать масштаб встающих проблем. То самое "как работать при меняющихся требованиях" - куда более важный вопрос, чем "сколько таблиц делать".
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #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
Таблиц: чем больше, тем лучше или наоборот?
    #34444630
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraDen AXAE softwarer AXAEА если куча большая - даже человек в сотне вещей будет перебирать практически все вещи по порядку,
Да ладно тебе. Он просто развалит ее по принципу половина-направо, половина-налево и снова увидит нужное :)

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

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

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

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

аверное тоже стать придется бюрократом: эта система разрабатывалась как раз под такой бюрократией - три года... Пока я маленький штатный единственный программист и меня раздражают подписи - для меня лишь бы работала система... Да НИКТО(!!!) там ни в жизнь не сможет написать, что им собственно нужно и никто не будет разбираться еще минимум года два в этом. У меня нет начальника. Я сам по себе там - типа героя-одиночки. Я новичок в базах данных. Меня не интересуют деньги, меня не интересует правильность их требований - для меня лишь бы эта система работала так, чтобы удовлетворить их требования и чтобы люди имели к ней минимальное отношение в управлении ею. Пока мне нравится разработка и платят достаточные для меня деньги (а мне очень немного нужно...) - я буду заниматься этим, естественно безрезультатно... (((
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444633
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viktorianka AXAEкод пишется практически один и тот же, разница только в паре строк. Например поиск по одному полю и поиск по другому полю - вроде один и тот же алгоритм, код будет похожим, но с парой измененных строк.

Код у вас на сервере БД или отдельно? Сервер БД какой? Можно юзать динамические запросы для таких целей. Можно взять кодогенерилку, типа CodeSmith и настроить шаблоны для стандартных операций. Можно вообще взять какой-нибудь ORM И не заморачиваться способом хранения данных, если это вызывает такие трудности.

У меня код только в программе, хотя сервер MySQL (да, это сервер MySQL, который я использую в качестве промышленного, а не WEB-сервера. Потому что MySQL самая простая) я стараюсь нагрузить как можно больше: если бы не надо было форматировать документ, то я бы в SQL запрос затолкал бы вообще все отчеты полностью с простейшим форматированием - возвраты каретки, табуляции и пр...
Я неопытный новичок, для меня и CodeSmith и ORM - уже что-то нереальное((
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444636
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEПока я .. Да НИКТО(!!!) .. никто не будет .. У меня .. Я сам по себе там - типа героя-одиночки ... Я новичок ... Меня не интересуют ... меня не интересует ... для меня ... Пока мне нравится ... - я буду
Хм. Понимаешь ли в чем дело, стоит понимать, что всякие мудрые технологии придумывали не только для того, чтобы безмерно осложнить жизнь простому честному трудяге, но еще и как способ решения некоторых вполне реальных задач, как ответы на некоторые вполне реальные вопросы.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444647
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм...очень интересное, интригующее, причудливое изложение ... если чесно - ничо не понял :( раскройте тему поподробнее ?

Пожалуйста - простой пример. Есть обследования, кучи обследований, диагностика, лабораторное исследование... Сложите их все, разделите на десять и возьмите одну часть. Что же это будет, угадайте?! Естественно, гинеколог... Все из-за того, что люди имеют пол (черт бы их побрал, но это личное мнение). И только из-за этого в таблице "обследования" будет поле "пол", для подавляющего большинства обследований это поле будет в NULL.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444650
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRaven

Я маленький опус как-то написал по борьбе с индексированием, настолько это меня поразило...

"...EXPLAIN SELECT раз за разом, словно издеваясь, показывал [ALL] напротив главной таблицы в моей базе данных, в которой должны были быть сотни тысяч записей. Хотя запрос уже работал правильно, но при таких объемах мой сервер просто остановится. Мир за три часа сузился до одного экрана, одного окна на экране и виртуальной клавиатуры (я печатаю вслепую). EXPLAIN показывал четырнадцать строк, в одной из которых я в который раз видел ALL... Эти три буквы, раз за разом с досадой звучали у меня в сознании тремя буквами общеизвестного слова...
...до обеда оставалось пять минут, когда я наконец нашел нужную комбинацию слов JOIN... В очередной раз запустив запрос, я увидел на месте ругательного [ALL] желанное слово [ref]. Вокруг, естественно, ничего не изменилось, только в мозгу прошептало "Откат...". В голову пришла дурацкая фраза, услышанная мной от моего бывшего начальника "да здравствует победа ума над разумом!". И я отправился на обед..."
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444652
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
012345Создавайте для каждой сущности предметной области отдельную таблицу и Ваши волосы будут густыми и шелковистыми :)
Проблема в том, что они переплетаются в дурацких сочетаниях: диагнозы могут принадлежать как обследованию на карте (причем далеко не все обследования могут назначать диагнозы), так и самой карте. Диагнозы могут быть простыми, а может быть профзаболеванием. Профзаболеванием могут быть далеко не все диагнозы. Отдельные обследования назначают разные диагнозы, хотя могут и одни и те же.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444654
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer AXAEПока я .. Да НИКТО(!!!) .. никто не будет .. У меня .. Я сам по себе там - типа героя-одиночки ... Я новичок ... Меня не интересуют ... меня не интересует ... для меня ... Пока мне нравится ... - я буду
Хм. Понимаешь ли в чем дело, стоит понимать, что всякие мудрые технологии придумывали не только для того, чтобы безмерно осложнить жизнь простому честному трудяге, но еще и как способ решения некоторых вполне реальных задач, как ответы на некоторые вполне реальные вопросы.

Не понял сути вашей реплики...
P.S. Суть - мать шизофрении))
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444866
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAE 012345Создавайте для каждой сущности предметной области отдельную таблицу и Ваши волосы будут густыми и шелковистыми :)
Проблема в том, что они переплетаются в дурацких сочетаниях: диагнозы могут принадлежать как обследованию на карте (причем далеко не все обследования могут назначать диагнозы), так и самой карте. Диагнозы могут быть простыми, а может быть профзаболеванием. Профзаболеванием могут быть далеко не все диагнозы. Отдельные обследования назначают разные диагнозы, хотя могут и одни и те же.
Ох, как мне близка когда-то была эта проблема :) . Только были ещё и характеристики больниц и санаторно-курортных организаций, и оценки, могут ли они лечить те или иные заболевания, и состояние больных до и после лечения. И врачи, замечательные люди, принимающие правильные решения не по логике, а по наитию и подобию... Это сложная предметная область. Но в 3НФ укладывается всё. Даже медицина. В крайнем случае призывайте призрак EAV :). Просто не спешите, лучше день думать, чем месяц исправлять неправильное решение.
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34444962
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexTheRaven AXAE 012345Создавайте для каждой сущности предметной области отдельную таблицу и Ваши волосы будут густыми и шелковистыми :)
Проблема в том, что они переплетаются в дурацких сочетаниях: диагнозы могут принадлежать как обследованию на карте (причем далеко не все обследования могут назначать диагнозы), так и самой карте. Диагнозы могут быть простыми, а может быть профзаболеванием. Профзаболеванием могут быть далеко не все диагнозы. Отдельные обследования назначают разные диагнозы, хотя могут и одни и те же.
Ох, как мне близка когда-то была эта проблема :) . Только были ещё и характеристики больниц и санаторно-курортных организаций, и оценки, могут ли они лечить те или иные заболевания, и состояние больных до и после лечения. И врачи, замечательные люди, принимающие правильные решения не по логике, а по наитию и подобию... Это сложная предметная область. Но в 3НФ укладывается всё. Даже медицина. В крайнем случае призывайте призрак EAV :). Просто не спешите, лучше день думать, чем месяц исправлять неправильное решение.
Месяц - это мало будет для исправления... А над структурой таблиц я уже четвертый день думаю. Это вообще прикольно выглядит: парень сидит целыми днями над листочком бумаги и рисует, рисует диаграммы, квадратики, кружочки, стрелочки, надписи... Уже листов двадцать изрисовал. Пришлось остановиться на компромиссном варианте, который в общих чертах сможет описать все, что мне нужно с некоторыми приблудами для особо вредных сущностей.
Я кстати дальше, чем третья нормальная форма не знаю. Что такое НФ Бойса-Кодда я уже не знаю, а уж дальше, сколько их там? Около девяти или двенадцати? Я даже не могу сказать, что такое первые-то три... Я совершенно не понимаю того, о чем пишут в книжках по базам данных, даже тех, которые считаются, что они понятнее некуда. Для третьей НФ я думаю достаточно интуиции))
А что такое EAV?
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34445051
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AXAEЯ кстати дальше, чем третья нормальная форма не знаю. Что такое НФ Бойса-Кодда я уже не знаю, а уж дальше, сколько их там? Около девяти или двенадцати? Я даже не могу сказать, что такое первые-то три... Я совершенно не понимаю того, о чем пишут в книжках по базам данных, даже тех, которые считаются, что они понятнее некуда. Для третьей НФ я думаю достаточно интуиции))
А что такое EAV?Чем дальше, тем больше у меня крепнет ощущение, что вы своим невежеством гордитесь, а не стыдитесь его. Вот мол, какой я парень от сохи, простой да работящий. А все эти ваши теории-де от лукавого. Ишь, напридумывали аж девять или двенадцать нормальных форм, теоретики клятые, да книг пухлых настрочили, в которых и понять ничего нельзя нормальному человеку.

Так что ли?

P.S. Нормальных форм всего шесть (1NF,2NF,3NF,BCNF,4NF,5NF), да пара-тройка чисто экспериментальных (ДКНФ, (3,3)НФ, 6НФ, описаны у Дейта, например).
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34445117
AXAE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir AXAEЯ кстати дальше, чем третья нормальная форма не знаю. Что такое НФ Бойса-Кодда я уже не знаю, а уж дальше, сколько их там? Около девяти или двенадцати? Я даже не могу сказать, что такое первые-то три... Я совершенно не понимаю того, о чем пишут в книжках по базам данных, даже тех, которые считаются, что они понятнее некуда. Для третьей НФ я думаю достаточно интуиции))
А что такое EAV?Чем дальше, тем больше у меня крепнет ощущение, что вы своим невежеством гордитесь, а не стыдитесь его. Вот мол, какой я парень от сохи, простой да работящий. А все эти ваши теории-де от лукавого. Ишь, напридумывали аж девять или двенадцать нормальных форм, теоретики клятые, да книг пухлых настрочили, в которых и понять ничего нельзя нормальному человеку.

Так что ли?


Скорее всего((( Но это не стоит обсуждать
...
Рейтинг: 0 / 0
Таблиц: чем больше, тем лучше или наоборот?
    #34446904
012345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AXAE 012345Создавайте для каждой сущности предметной области отдельную таблицу и Ваши волосы будут густыми и шелковистыми :)
Проблема в том, что они переплетаются в дурацких сочетаниях: диагнозы могут принадлежать как обследованию на карте (причем далеко не все обследования могут назначать диагнозы), так и самой карте. Диагнозы могут быть простыми, а может быть профзаболеванием. Профзаболеванием могут быть далеко не все диагнозы. Отдельные обследования назначают разные диагнозы, хотя могут и одни и те же.
> Проблема в том, что они переплетаются в дурацких сочетаниях:

Когда Вы как следует разберетесь в этих сочетаниях, они не будут казаться таковыми.

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

Значит, принадлежность диагноза состоит из двух полей: № карты, № обследования. Второе из них может быт пустым.

> Диагнозы могут быть простыми, а может быть профзаболеванием. Профзаболеванием могут быть > далеко не все диагнозы.

И в чем тут проблема? Логическое поле (Да/Нет)

> Отдельные обследования назначают разные диагнозы, хотя могут и одни и те же

Не совсем понятно, что Вам нужно из этого получить, но с этим тоже можно сладить.
Не думаю, что диагноз будет ставить программа в зависимости от результатов обследования :)

PS Я не гарантирую, что это всё правильно, так как не знаю деталей, но думаю, Вы уловили подход.
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Таблиц: чем больше, тем лучше или наоборот?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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