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

У нас в проекте есть два вида неких сущностей, имеющую древовидную структуру. Они различны и деревьев может быть несколько. Мы спроектировали базу таким образом: есть 2 таблицы специфической информации о сущности, которые ссылаются на корневой нод дерева. Соответственно из информации этой таблице можно однозначно выбрать деревья, которые принадлежат данному типу сущностей.

Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753066
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас все деревья (точнее все ветки без листьев) хранятся в одной таблице.
А деревьев в системе полсотни.
Это удобно. Все деревья в т.ч. будущие обслуживаются одним куском кода.
Ветки имеют поле, указывающее, к какому дереву (тип документа/справочника) оно относится.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753165
Fire Fenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, что если надо определить все деревья, относящиеся к одному типу?
Размещая деревья в разных таблицах, Вы не теряете в системе очевидности и простоты, четко зная где и что хранится.
Следуя такой логике, есть дерево товаров и отделов. давайте их хранит в одной таблице, ведь это тако удобно!
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753170
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БаранкинПомогите в пятничном споре с коллегами..
Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные.
Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей...
С разным назначением... С разными наборами атрибутов и т.п...
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753183
Fire Fenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mvБаранкинПомогите в пятничном споре с коллегами..
Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные.
Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей...
С разным назначением... С разными наборами атрибутов и т.п...

Проясните детальнее пожалуйста свою позицию.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753196
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fire Fenixsphinx_mvпропущено...

Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей...
С разным назначением... С разными наборами атрибутов и т.п...

Проясните детальнее пожалуйста свою позицию.
Перемещение сотрудника по филиалам крупной компании.
Примерно такая иерархия: "Страна"->"Город"->"Офис"->"Отдел"->Сорудник.
К тому же на уровнях "Город", "Офис", и "Отдел" могут иметься дополнительные однотипные подуровни
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753197
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvБаранкинПомогите в пятничном споре с коллегами..
Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные.
Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей...
С разным назначением... С разными наборами атрибутов и т.п...
а почему нет? назначение нам вообще пофиг, наборы атрибутов - вынесены же!!
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753214
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Duraksphinx_mvпропущено...

Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей...
С разным назначением... С разными наборами атрибутов и т.п...
а почему нет? назначение нам вообще пофиг, наборы атрибутов - вынесены же!!
Я примерно про то же...
В зависимости от корневого родителя мы можем строить множество разнотипных иерархий в одном дереве.
Или просто добавив признак "тип дерева" просто строим параллельные и независимые иерархии.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753229
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я
> считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А

Конечно в одной. Один код будет для всего, универсальный.

> коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть
> отдельные.

Смысл ?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753232
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Баранкин Помогите в пятничном споре с коллегамиМое мнение - вы не правы. Мухи отдельно котлеты отдельно.
За разделение - базу проще обслуживать (импорт/экспорт/переиндексация и т.п.) другая часть жива и может продолжать работать.
проще наложить ограничения на уровне СУБД (догадываюсь, что для девелопера это звучит дико :-))
больше маневра для борьбы за производительность
За объединение - не вижу преимуществ - в конце концов сделать вьюху с union all легко и просто
divide et impera
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753345
Fire Fenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, в понедельник скажу Бараникну что был не прав, потому как увидел зерно истины.
Но думаю к мнению БД-админа тоже стоит прислушаться. :-)
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753592
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> В одной таблице или в двух?

В двух. Но обычно для описания иерархии используется больше одной таблицы.

> дерево, оно и в Африке дерево

Это ошибочная точка зрения. В общем случае ни одного аргумента "за" унифицированную таблицу не существует. Есть ситуации, когда использование такой таблицы необходимо, но они специфичны и вряд ли есть в вашем проекте.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753603
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> в одном дереве нужно будет хранить иерархии разнотипных сущностей

В правильно спроектированной базе данных все иерархии однородны.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753632
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> в одном дереве нужно будет хранить иерархии разнотипных сущностей

В правильно спроектированной базе данных все иерархии однородны.
И в чем Вы наблюдаете противоречие?
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753662
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> И в чем Вы наблюдаете противоречие?

Однородность не предполагает дополнительной категоризации.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37753820
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> И в чем Вы наблюдаете противоречие?

Однородность не предполагает дополнительной категоризации.
Намекаете, что EAV-like-сущности в дерево объединять "низ-з-з-зя"... Ибо "категоризация не предполагается"...
Заблуждение, однако...

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

Если же Вы предполагаете "однородность" как "однородность первичных ключей", то никакого противоречия в "разнотипных" узлах дерева не наблюдается...
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37754460
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

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

в контексте "товар" и т.д. более к месту этот скрин
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37754785
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRossphinx_mv,

нафиг не нужно работать нетипизированными сущностями

Если уж мы все-таки про БД(ака, "базы данных" ), то нечто, оперирующее нетипизированными сущностями как "базу данных" классифицировать весьма проблематично... Соответственно, к теме это Ваше утверждение совершенно никаким боком.
В-общем, я не понял, в чем Вы меня убеждаете... И почему именно меня...
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755107
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

Я просто сказал, что в РБД нет никаких деревьев и каталогов
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755221
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БаранкинПомогите в пятничном споре с коллегами..

У нас в проекте есть два вида неких сущностей, имеющую древовидную структуру. Они различны и деревьев может быть несколько. Мы спроектировали базу таким образом: есть 2 таблицы специфической информации о сущности, которые ссылаются на корневой нод дерева. Соответственно из информации этой таблице можно однозначно выбрать деревья, которые принадлежат данному типу сущностей.

Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные.

Когда вижу подобные рассуждения , задаю себе вопрос: зачем? В чем выгода?
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755274
Баранкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин, одна выгода в том, что дерево одно, соответсвенно и код его обслуживающий. Это с одной стороны. Но нужно всегда быть в курсе того, что ты из него выбираешь. А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. Хотя, если деревьев в таблице больше одного, в любом случае придётся указать, что выбирается какое-то конкретное.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755355
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Баранкин] А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. quot]
Да-да-да...
TBL_Tree_641.... TBL_Tree_642 всё понятно ж, чё
:)
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755361
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRossphinx_mv,

Я просто сказал, что в РБД нет никаких деревьев и каталогов
"А мужики-то и не знают!.." (с)
Цепочка связанных таблиц вида T1->T2->...->TN представляет собой по сути ничто иное, как реализацию дерева с ограниченным количеством уровней вложенности. При этом никакая теория не запрещает практическую реализацию подобной цепочки на основе таблицы, записи которой ссылаются на другие записи этой же самой таблицы, получив при этом дерево с неограниченным уровнем вложенности. И "отсутствующие в теории" каталоги - не более, чем узлы дерева определенного типа или имеющие определенный признак (что по сути одно и то же).
"Деревья" и "каталоги" - не более чем еще один из вариантов абстракции и представления взаимосвязей между данными.
...
Рейтинг: 0 / 0
Деревья разных сущностей в одной таблице
    #37755381
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БаранкинОзверин, одна выгода в том, что дерево одно, соответсвенно и код его обслуживающий. Это с одной стороны. Но нужно всегда быть в курсе того, что ты из него выбираешь. А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. Хотя, если деревьев в таблице больше одного, в любом случае придётся указать, что выбирается какое-то конкретное.

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


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