powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / количество таблиц - как лучше?
25 сообщений из 36, страница 1 из 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
25 сообщений из 36, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / количество таблиц - как лучше?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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