|
|
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
форумчане, поделитесь мыслями и опытом, какая структура БД лучше (производительнее, удобнее в сопровождении) несколько больших таблиц или много, но поменьше нормализация данных одинаковая 3 например 1. справочник можно сделать один большой для разных таблиц (должности, типы товаров и др. константы) или отдельные справочники 2. таблицу отделов/сотрудников можно объединить в одну (дерево) или две сотрудник-отдел много таблиц - часть параметров, специфических для объектов, в самих таблицах мало таблиц - специфические параметры выносятся в отдельные таблицы параметров по типам баланс должен быть, к этому итогу придем ... но хочется обсудить именно указанные схемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 11:42 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверской, самый простой пример: введение одного большого справочника крайне затрудняет контроль корректности ссылок на этот самый справочник (что сслаетесь на тип довара, а не на должность к примеру) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 12:27 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
Сама постановка вопроса мне кажется ошибочной. Такой вопрос по-моему не должен возникать, если всё делать правильно) Ну вот смотрите, вы пишите тверской2. таблицу отделов/сотрудников можно объединить в одну (дерево) или две сотрудник-отдел Но если вы начнёте с анализа предметной области и выделения в ней ключевых сущностей, то вы непременно выделите две разные сущности: сотрудник и отдел. Соответственно эти же сущности (плюс связь между ними) окажутся сначала в вашей логической схеме, а затем и в физической (уже в виде двух отдельных таблиц). Тут вариантов быть не может по-моему) В целом, кол-во таблиц не является определяющим и критичным параметром схемы. Делайте так, как того требует предметная область и её бизнес-правила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 12:37 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
beef, типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство) т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 12:53 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
iljy, ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 13:01 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойbeef, типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство) т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей Это выше моего понимания) тверскойiljy, ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Решать косяки схемы прикладным ПО - это, мягко говоря, плохо) Нормальная схема должна самостоятельно поддерживать свою целостность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 13:38 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойiljy, ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Напрашивается вопрос: нафига вам СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:10 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
beefтверскойbeef, типов сущностей может быть две и больше, но таблица сущностей (id, тип, ...) может быть одна + таблица свойств (id сущности, тип свойства, свойство) т.е., грубо, две таблицы (сущности и свойства) на все типы сущностей Это выше моего понимания) представьте что есть таблица объектов и таблица свойств объектов тогда не имеет значение какие именно объекты в таблице - должности, конкретные сотрудники, подразделения ... они отличаются типом и набором свойств beefтверскойiljy, ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Решать косяки схемы прикладным ПО - это, мягко говоря, плохо) Нормальная схема должна самостоятельно поддерживать свою целостность. ссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:12 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
baracsтверскойiljy, ошибки ввода данных возможны в любых системах, это, имхо, в значительной мере решается на уровне прикладного ПО Напрашивается вопрос: нафига вам СУБД? тверскойссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО не поверите - данные хранить и обрабатывать ;) хочу разобраться, с помощью форумчан, какая схема какие преимущества имеет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:17 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойхочу разобраться, с помощью форумчан, какая схема какие преимущества имеетпоиск по форуму: EAV, Тенцер. ЗЫ обсасывалось неисчислимое количество раз, есть несколько эпических холиваров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:29 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойне поверите - данные хранить и обрабатывать ;)ну вот и представьте, как будет выглядеть в вашем случае запрос вида: "выбрать всех сотрудников, с зарплатой, меньшей, чем 897 руб. 17 коп" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:31 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
Очередная попытка построить СУБД над РСУБД и разруливать всё кодом. Можно вообще всё сложить в одну таблицу, дескать всё объекты - одна сущность, а потом с этим всем корячиться. Стандартные РСУБД уже дают возможность разложить всё по полочкам и решать большинство практических задач во вполне осмысленной парадигме. Зачем городить огород на пустом месте ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:48 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
egorych, несколько JOIN таблицы объектов с таблицей свойств, в чем должна быть проблема? возможно JOIN'нов будет больше, чем при схеме человек - должность - з/п ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:50 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойbaracsпропущено... Напрашивается вопрос: нафига вам СУБД? тверскойссылка на неправильное значение в справочнике - это ошибка ввода, а не схемы да, в таблице-справочнике много значений, но контролировать правильный выбор из справочника - задача прикладного ПО не поверите - данные хранить и обрабатывать ;) Хранить и обрабатывать можно и в текстовом файле или в xml... Такая мысль в этом форуме высказывалась не раз тверскойхочу разобраться, с помощью форумчан, какая схема какие преимущества имеет Та, которая позволяет использовать встроенные возможности РСУБД по обеспечению целостности и непротиворечивости данных. В данном случае, грамотная схема позволит СУБД "отбивать" такие ошибки ввода на подлете. А приложению останется, только, внятно объяснить юзеру, что случилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:52 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
ChA, не совсем, строить ничего нового не надо "всё уже украдено до нас" ))) добавлять новые таблицы под каждый тип объектов <-> добавлять новые значения в справочник, не меняя кол-ва таблиц например - автопарк все машины в одной таблице или разделить легковые, грузовые, автобусы, спец.техника в разные? наборы свойств сильно различаются, но много общих ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 14:57 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
baracs, 1. если пользователь ввел (по справочнику) вместо VIP клиент - обычный клиент - никакая СУБД не "отобьет" 2. если пользователю выдаётся неправильный справочник и вместо статуса клиента в выданном справочнике перечислены цвета - это ошибка прикладного ПО, СУБД не "отобьет" чем схема - один справочник - не грамотная? вероятно тем, что, в теории, пользователю разрешат ввести ссылку не на тот тип объекта, но это проблема №2 прикладного ПО если создать много справочников, то интервалы id будут, скорее всего, пересекаться и ошибка "неправильного справочника" не исключается на уровне СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:07 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойдобавлять новые таблицы под каждый тип объектов <-> добавлять новые значения в справочник, не меняя кол-ва таблицИ в чём ценность такой возможности ? Вместо Код: plaintext Код: plaintext тверскойнапример - автопарк все машины в одной таблице или разделить легковые, грузовые, автобусы, спец.техника в разные? наборы свойств сильно различаются, но много общихПодобный пример уже многократно обсуждался на форуме. Обычно пользуют иерархическую раскладку. Наиболее общие св-ва в "верхней" таблице, более специализированные в подчинённых в зависимости от типа. Но для некоторых задач даже этого может не понадобиться, типы могут не пересекаться по предметной области и нет смысла выделять "общую" таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:10 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойпредставьте что есть таблица объектов и таблица свойств объектов тогда не имеет значение какие именно объекты в таблице - должности, конкретные сотрудники, подразделения ... они отличаются типом и набором свойств Представил - не понравилось) Я просто не понимаю, зачем так делать? Не говорю, что так вообще нельзя делать. Можно. Можно вообще все данные в текстовом файле хранить, а прикладным ПО их оттуда вытаскивать. Только нафик оно нужно, если у нас есть СУБД. Предметная область сама диктует схемы хранения данных в "человечных" отношениях сущность-связь, и благо, современные СУБД позволяют такие схемы реализовывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:12 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
beef, Вы передергиваете, сравниваете малое кол-во таблиц с хранением в текстовом файле и на основе этого делаете красивый и внешне правильный вывод "только нафик оно нужно, если у нас есть СУБД" полагаю Ваша категоричность следует из "Я просто не понимаю, зачем так делать?" пример выше - автопарк иерархическое распределение таблиц, как предлагает ChA, и есть "баланс должен быть, к этому итогу придем" при большом кол-ве таблиц может возникнуть (и возникает) проблема - приобрели новый тип авто - автовышка, у которой новые параметры - вылет стрелы и т.д. добавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:39 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойegorych, несколько JOIN таблицы объектов с таблицей свойств, в чем должна быть проблема? возможно JOIN'нов будет больше, чем при схеме человек - должность - з/ппроблема - производительность запросов и сопровождаемость кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:57 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойдобавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблицеПридется делать то же самое в обоих случаях, пройдено. Это только простейший случай, когда не надо ничего менять. Когда новая сущность практически никак не влияет на остальную схему, но тогда и смысла от неё немного. Впрочем, каждый, наверное, должен пройти "велосипедную" стадию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 15:57 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
egorychпроблема - производительность запросов и сопровождаемость кода.+1 Такие запросы иногда получаются, мама не горюй. А главное, понять их потом сложно, сплошные "универсальные" сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 16:00 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
"Ох не пойму я, чего вы спорите..." (с) Любая структура имеет определённых преимущества. Любая структура порождает определённые проблемы. Если порождаемые проблемы превышают преимущества - поменял структуру и дело с концом. Для обеспечения обратной совместимости есть куча средств, начиная с вьюх и кончая дубль-базой. Тверской, у тебя сейчас проблема с отчётами, которые строятся по несколько часов. Ты бы с ней разобрался лучше, чем крохоборствовать со справочниками... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 16:17 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
тверскойbeef, пример выше - автопарк иерархическое распределение таблиц, как предлагает ChA, и есть "баланс должен быть, к этому итогу придем" при большом кол-ве таблиц может возникнуть (и возникает) проблема - приобрели новый тип авто - автовышка, у которой новые параметры - вылет стрелы и т.д. добавляем новую таблицу? и как следствие переписываем код прикладного ПО и хранимые процедуры на сервере, чтобы они знали о новой таблице Каждая конкретная задача имеет конкретное решение. Общего рецепта нет и быть не может. А если автопарк захочет в автосервис преобразоваться или вообще в ресторан? Что тоже будем таблички добавлять/переделывать?) Я к тому, что работаем то, как правило, по ТЗ. Если в ТЗ написано сделать параметр вылет стрелы - сделаем. Если в ТЗ написано сделать так, чтобы при необходимости список параметров можно было расширить - тоже сделаем. А так можно до бесконечности строить схемы "на все случаи жизни"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 16:20 |
|
||
|
количество таблиц - как лучше?
|
|||
|---|---|---|---|
|
#18+
beef, ТЗ пишет разработчик, заказчик, обычно, не силен в технической части, хорошо если в предметной всё понимает мы, как разработчики, стараемся выбрать схему, которая оптимальна по производительности и простоте сопровождения обсуждаем разные схемы на примере крайних случаев - мало таблиц <-> много талиц - в боевых системах всегда компромис ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2011, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37473160&tid=1541990]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 486ms |

| 0 / 0 |
