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

много таблиц - часть параметров, специфических для объектов, в самих таблицах
мало таблиц - специфические параметры выносятся в отдельные таблицы параметров по типам

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

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

В целом, кол-во таблиц не является определяющим и критичным параметром схемы. Делайте так, как того требует предметная область и её бизнес-правила.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472704
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beef,
типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство)
т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472719
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iljy,
ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472811
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тверскойbeef,
типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство) т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей
Это выше моего понимания)

тверскойiljy,
ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО
Решать косяки схемы прикладным ПО - это, мягко говоря, плохо) Нормальная схема должна самостоятельно поддерживать свою целостность.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472882
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойiljy,
ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Напрашивается вопрос: нафига вам СУБД?
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472887
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beefтверскойbeef,
типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство) т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей
Это выше моего понимания)
представьте что есть таблица объектов и таблица свойств объектов
тогда не имеет значение какие именно объекты в таблице - должности, конкретные сотрудники, подразделения ... они отличаются типом и набором свойств


beefтверскойiljy,
ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО
Решать косяки схемы прикладным ПО - это, мягко говоря, плохо) Нормальная схема должна самостоятельно поддерживать свою целостность.
ссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы
да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472905
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracsтверскойiljy,
ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Напрашивается вопрос: нафига вам СУБД?
тверскойссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы
да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО
не поверите - данные хранить и обрабатывать ;)

хочу разобраться, с помощью форумчан, какая схема какие преимущества имеет
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472947
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойхочу разобраться, с помощью форумчан, какая схема какие преимущества имеетпоиск по форуму: EAV, Тенцер.
ЗЫ обсасывалось неисчислимое количество раз, есть несколько эпических холиваров
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37472951
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойне поверите - данные хранить и обрабатывать ;)ну вот и представьте, как будет выглядеть в вашем случае запрос вида: "выбрать всех сотрудников, с зарплатой, меньшей, чем 897 руб. 17 коп"
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473004
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередная попытка построить СУБД над РСУБД и разруливать всё кодом. Можно вообще всё сложить в одну таблицу, дескать всё объекты - одна сущность, а потом с этим всем корячиться.
Стандартные РСУБД уже дают возможность разложить всё по полочкам и решать большинство практических задач во вполне осмысленной парадигме. Зачем городить огород на пустом месте ?
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473011
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,
несколько JOIN таблицы объектов с таблицей свойств, в чем должна быть проблема?
возможно JOIN'нов будет больше, чем при схеме человек - должность - з/п
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473019
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойbaracsпропущено...
Напрашивается вопрос: нафига вам СУБД?
тверскойссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы
да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО
не поверите - данные хранить и обрабатывать ;) Хранить и обрабатывать можно и в текстовом файле или в xml... Такая мысль в этом форуме высказывалась не раз

тверскойхочу разобраться, с помощью форумчан, какая схема какие преимущества имеет Та, которая позволяет использовать встроенные возможности РСУБД по обеспечению целостности и непротиворечивости данных.
В данном случае, грамотная схема позволит СУБД "отбивать" такие ошибки ввода на подлете.
А приложению останется, только, внятно объяснить юзеру, что случилось.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473033
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChA,
не совсем, строить ничего нового не надо "всё уже украдено до нас" )))
добавлять новые таблицы под каждый тип объектов <-> добавлять новые значения в справочник, не меняя кол-ва таблиц

например - автопарк
все машины в одной таблице или разделить легковые, грузовые, автобусы, спец.техника в разные?
наборы свойств сильно различаются, но много общих
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473056
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracs,
1. если пользователь ввел (по справочнику) вместо VIP клиент - обычный клиент - никакая СУБД не "отобьет"
2. если пользователю выдаётся неправильный справочник и вместо статуса клиента в выданном справочнике перечислены цвета - это ошибка прикладного ПО, СУБД не "отобьет"

чем схема - один справочник - не грамотная?
вероятно тем, что, в теории, пользователю разрешат ввести ссылку не на тот тип объекта, но это проблема №2 прикладного ПО
если создать много справочников, то интервалы id будут, скорее всего, пересекаться и ошибка "неправильного справочника" не исключается на уровне СУБД
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473069
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойдобавлять новые таблицы под каждый тип объектов <-> добавлять новые значения в справочник, не меняя кол-ва таблицИ в чём ценность такой возможности ? Вместо
Код: plaintext
SELECT Name FROM NewDic
писать
Код: plaintext
SELECT Name FROM AllDic WHERE DicID =  2 
? Первый явно проще и понятней, без всяких "магических" чисел.
тверскойнапример - автопарк
все машины в одной таблице или разделить легковые, грузовые, автобусы, спец.техника в разные?
наборы свойств сильно различаются, но много общихПодобный пример уже многократно обсуждался на форуме. Обычно пользуют иерархическую раскладку. Наиболее общие св-ва в "верхней" таблице, более специализированные в подчинённых в зависимости от типа. Но для некоторых задач даже этого может не понадобиться, типы могут не пересекаться по предметной области и нет смысла выделять "общую" таблицу.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473074
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тверскойпредставьте что есть таблица объектов и таблица свойств объектов
тогда не имеет значение какие именно объекты в таблице - должности, конкретные сотрудники, подразделения ... они отличаются типом и набором свойств

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

пример выше - автопарк
иерархическое распределение таблиц, как предлагает ChA, и есть "баланс должен быть, к этому итогу придем"
при большом кол-ве таблиц может возникнуть (и возникает) проблема - приобрели новый тип авто - автовышка, у которой новые параметры - вылет стрелы и т.д.
добавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблице
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473157
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойegorych,
несколько JOIN таблицы объектов с таблицей свойств, в чем должна быть проблема?
возможно JOIN'нов будет больше, чем при схеме человек - должность - з/ппроблема - производительность запросов и сопровождаемость кода.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473160
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойдобавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблицеПридется делать то же самое в обоих случаях, пройдено. Это только простейший случай, когда не надо ничего менять. Когда новая сущность практически никак не влияет на остальную схему, но тогда и смысла от неё немного.
Впрочем, каждый, наверное, должен пройти "велосипедную" стадию.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473165
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychпроблема - производительность запросов и сопровождаемость кода.+1
Такие запросы иногда получаются, мама не горюй. А главное, понять их потом сложно, сплошные "универсальные" сущности.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473190
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Ох не пойму я, чего вы спорите..." (с)
Любая структура имеет определённых преимущества. Любая структура порождает определённые
проблемы. Если порождаемые проблемы превышают преимущества - поменял структуру и дело с
концом. Для обеспечения обратной совместимости есть куча средств, начиная с вьюх и кончая
дубль-базой.

Тверской, у тебя сейчас проблема с отчётами, которые строятся по несколько часов. Ты бы с
ней разобрался лучше, чем крохоборствовать со справочниками...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473193
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тверскойbeef,
пример выше - автопарк
иерархическое распределение таблиц, как предлагает ChA, и есть "баланс должен быть, к этому итогу придем"
при большом кол-ве таблиц может возникнуть (и возникает) проблема - приобрели новый тип авто - автовышка, у которой новые параметры - вылет стрелы и т.д.
добавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблице
Каждая конкретная задача имеет конкретное решение. Общего рецепта нет и быть не может.
А если автопарк захочет в автосервис преобразоваться или вообще в ресторан? Что тоже будем таблички добавлять/переделывать?)
Я к тому, что работаем то, как правило, по ТЗ. Если в ТЗ написано сделать параметр вылет стрелы - сделаем. Если в ТЗ написано сделать так, чтобы при необходимости список параметров можно было расширить - тоже сделаем.
А так можно до бесконечности строить схемы "на все случаи жизни"...
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473256
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beef,
ТЗ пишет разработчик, заказчик, обычно, не силен в технической части, хорошо если в предметной всё понимает
мы, как разработчики, стараемся выбрать схему, которая оптимальна по производительности и простоте сопровождения
обсуждаем разные схемы на примере крайних случаев - мало таблиц <-> много талиц - в боевых системах всегда компромис
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473268
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov"Ох не пойму я, чего вы спорите..." (с)
Любая структура имеет определённых преимущества. Любая структура порождает определённые проблемы. Если порождаемые проблемы превышают преимущества - поменял структуру и дело с концом. Для обеспечения обратной совместимости есть куча средств, начиная с вьюх и кончая дубль-базой.

Тверской, у тебя сейчас проблема с отчётами, которые строятся по несколько часов. Ты бы с
ней разобрался лучше, чем крохоборствовать со справочниками...

DS, как рад Вас ... читать
пытаюсь выделить основные плюсы и минусы каждой схемы
с отчетами жеж решено - пользователи ставят их в очередь в табличке, и их по расписанию запускает isql
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473297
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойbaracs,
1. если пользователь ввел (по справочнику) вместо VIP клиент - обычный клиент - никакая СУБД не "отобьет" Прикладное ПО тоже.
тверской2. если пользователю выдаётся неправильный справочник и вместо статуса клиента в выданном справочнике перечислены цвета - это ошибка прикладного ПО Эта ошибка пъяного разработчика прикладного ПО.
тверскойчем схема - один справочник - не грамотная?
вероятно тем, что, в теории, пользователю разрешат ввести ссылку не на тот тип объекта, но это проблема №2 прикладного ПО Даже пъяному разработчику, в случае грамотной схемы сложнее накосячить.
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473301
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойDimitry SibiryakovТверской, у тебя сейчас проблема с отчётами, которые строятся по несколько часов. Ты бы с
ней разобрался лучше, чем крохоборствовать со справочниками...

<...> с отчетами жеж решено - пользователи ставят их в очередь в табличке, и их по расписанию запускает isql Чувствуется, что выбрана схема, которая оптимальна по производительности и простоте сопровождения...
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473369
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойобсуждаем разные схемы на примере крайних случаев - мало таблиц <-> много талицПоследнее, о чём должен задумываться проектировщик, так это о количестве таблиц в БД. Даже сказал бы, что об этом он вовсе не должен думать. Их должно быть ровно столько, сколько нужно для адекватного описания предметной области(ПО), включая сущности и связи между ними. А выстроить БД над БД, а потом метаданными, а то и грубо, кодом, описывать модель ПО в большинстве случаев избыточно. РСУБД как раз и заточены под уход от излишней абстракции. Не уподобляйтесь Астронавтам Архитектуры .
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473437
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тверскойbeef,
ТЗ пишет разработчик, заказчик, обычно, не силен в технической части, хорошо если в предметной всё понимает
мы, как разработчики, стараемся выбрать схему, которая оптимальна по производительности и простоте сопровождения
обсуждаем разные схемы на примере крайних случаев - мало таблиц <-> много талиц - в боевых системах всегда компромис
ТЗ определяет уж никак не схему БД, а требования к ПО. Более того, на стадии написания ТЗ, как правило, о схеме БД речи вообще не идёт (разве что какие-то общие требования определяются). Схема БД строится уже по согласованному с заказчиком ТЗ, в котором чётко определены требования к функционалу. Конечно, проектировщик может заложить в схему какие-то возможности её дополнения в случае необходимости (кстати, в нормально спроектированную схему, как правило, несложно внести небольшие изменения), но, повторюсь, он не то, что не обязан - он просто не должен - "предусмотрительно" делать схему "на все случаи жизни".
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37473465
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA Впрочем, каждый, наверное, должен пройти "велосипедную" стадию. +1
Будем надеятся, что до реализации это не дойдет, а если дойдет то долго не проживет.

2 тверской
http://en.wikipedia.org/wiki/Divide_and_rule
http://anekdot.ru/id/-1011100009/
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37475259
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бОльшая часть постов - ожидаемый и, часто, необоснованный стеб (написанный в попытках самоутвердиться или ещё по каким-то причинам)
позиция отвечающих - ТС велосипедостроитель, чувствуется у ТС соринка в глазу и т.д.

за всем этим забывается обсуждаемый вопрос
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37475270
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracsтверскойпропущено...
<...> с отчетами жеж решено - пользователи ставят их в очередь в табличке, и их по расписанию запускает isql Чувствуется, что выбрана схема, которая оптимальна по производительности и простоте сопровождения...
яркий пример из разряда - слышал звон, но не понял где он
если действительно интересно - почитайте длительная ХП
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37475421
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверскойесли действительно интересно - почитайте длительная ХП Почитал

Замечательное резюме: 11350461
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37475596
тверской
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracs,
и что же вас огорчило настолько, что выбрали в качестве резюме обсуждения пост не о технической составляющей, а переход на личности?
перейти на личные обвинения/подозрения, когда нечего сказать по существу - старый и избитый прием
...
Рейтинг: 0 / 0
количество таблиц - как лучше?
    #37475986
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тверской,

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


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