|
|
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Помогите в пятничном споре с коллегами.. У нас в проекте есть два вида неких сущностей, имеющую древовидную структуру. Они различны и деревьев может быть несколько. Мы спроектировали базу таким образом: есть 2 таблицы специфической информации о сущности, которые ссылаются на корневой нод дерева. Соответственно из информации этой таблице можно однозначно выбрать деревья, которые принадлежат данному типу сущностей. Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 17:14 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
У нас все деревья (точнее все ветки без листьев) хранятся в одной таблице. А деревьев в системе полсотни. Это удобно. Все деревья в т.ч. будущие обслуживаются одним куском кода. Ветки имеют поле, указывающее, к какому дереву (тип документа/справочника) оно относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 17:35 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Хорошо, что если надо определить все деревья, относящиеся к одному типу? Размещая деревья в разных таблицах, Вы не теряете в системе очевидности и простоты, четко зная где и что хранится. Следуя такой логике, есть дерево товаров и отделов. давайте их хранит в одной таблице, ведь это тако удобно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:20 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
БаранкинПомогите в пятничном споре с коллегами.. Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные. Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей... С разным назначением... С разными наборами атрибутов и т.п... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:22 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
sphinx_mvБаранкинПомогите в пятничном споре с коллегами.. Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные. Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей... С разным назначением... С разными наборами атрибутов и т.п... Проясните детальнее пожалуйста свою позицию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:29 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Fire Fenixsphinx_mvпропущено... Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей... С разным назначением... С разными наборами атрибутов и т.п... Проясните детальнее пожалуйста свою позицию. Перемещение сотрудника по филиалам крупной компании. Примерно такая иерархия: "Страна"->"Город"->"Офис"->"Отдел"->Сорудник. К тому же на уровнях "Город", "Офис", и "Отдел" могут иметься дополнительные однотипные подуровни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:36 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
sphinx_mvБаранкинПомогите в пятничном споре с коллегами.. Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные. Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей... С разным назначением... С разными наборами атрибутов и т.п... а почему нет? назначение нам вообще пофиг, наборы атрибутов - вынесены же!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:36 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Ivan Duraksphinx_mvпропущено... Интересно, что скажут коллеги, когда в одном дереве нужно будет хранить иерархии разнотипных сущностей... С разным назначением... С разными наборами атрибутов и т.п... а почему нет? назначение нам вообще пофиг, наборы атрибутов - вынесены же!! Я примерно про то же... В зависимости от корневого родителя мы можем строить множество разнотипных иерархий в одном дереве. Или просто добавив признак "тип дерева" просто строим параллельные и независимые иерархии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:44 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
> Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я > считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А Конечно в одной. Один код будет для всего, универсальный. > коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть > отдельные. Смысл ? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:55 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Баранкин Помогите в пятничном споре с коллегамиМое мнение - вы не правы. Мухи отдельно котлеты отдельно. За разделение - базу проще обслуживать (импорт/экспорт/переиндексация и т.п.) другая часть жива и может продолжать работать. проще наложить ограничения на уровне СУБД (догадываюсь, что для девелопера это звучит дико :-)) больше маневра для борьбы за производительность За объединение - не вижу преимуществ - в конце концов сделать вьюху с union all легко и просто divide et impera ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 18:56 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Ок, в понедельник скажу Бараникну что был не прав, потому как увидел зерно истины. Но думаю к мнению БД-админа тоже стоит прислушаться. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 20:11 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
> В одной таблице или в двух? В двух. Но обычно для описания иерархии используется больше одной таблицы. > дерево, оно и в Африке дерево Это ошибочная точка зрения. В общем случае ни одного аргумента "за" унифицированную таблицу не существует. Есть ситуации, когда использование такой таблицы необходимо, но они специфичны и вряд ли есть в вашем проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 23:30 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
> в одном дереве нужно будет хранить иерархии разнотипных сущностей В правильно спроектированной базе данных все иерархии однородны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2012, 23:35 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
guest_20040621> в одном дереве нужно будет хранить иерархии разнотипных сущностей В правильно спроектированной базе данных все иерархии однородны. И в чем Вы наблюдаете противоречие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2012, 00:10 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
> И в чем Вы наблюдаете противоречие? Однородность не предполагает дополнительной категоризации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2012, 00:36 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
guest_20040621> И в чем Вы наблюдаете противоречие? Однородность не предполагает дополнительной категоризации. Намекаете, что EAV-like-сущности в дерево объединять "низ-з-з-зя"... Ибо "категоризация не предполагается"... Заблуждение, однако... Вы с каталогами товаров работали? Его представление (и хранение) в виде дерева - вполне обычная и нормальная ситуация. В каталоге могут быть товары разного типа, с разными наборами атрибутов (элементарный пример - комплектующие и системы "в сборе"). Соответственно, дерево разнотипных товаров - обычная и нормальная ситуация. Не говоря уже о некоторых экзотических случаях, когда к каталоге ссылок на один и тот же товар даже может быть несколько (в разных ветках). Если же Вы предполагаете "однородность" как "однородность первичных ключей", то никакого противоречия в "разнотипных" узлах дерева не наблюдается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2012, 10:57 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
sphinx_mv, нафиг не нужно работать нетипизированными сущностями класиификаторы - отдельные сущности, они классифицируют типы и классы, а внутри типа классификация по свойствам и по значениям свойств ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2012, 12:35 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
ViPRos, в контексте "товар" и т.д. более к месту этот скрин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2012, 12:46 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
ViPRossphinx_mv, нафиг не нужно работать нетипизированными сущностями Если уж мы все-таки про БД(ака, "базы данных" ), то нечто, оперирующее нетипизированными сущностями как "базу данных" классифицировать весьма проблематично... Соответственно, к теме это Ваше утверждение совершенно никаким боком. В-общем, я не понял, в чем Вы меня убеждаете... И почему именно меня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2012, 21:52 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
sphinx_mv, Я просто сказал, что в РБД нет никаких деревьев и каталогов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 10:24 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
БаранкинПомогите в пятничном споре с коллегами.. У нас в проекте есть два вида неких сущностей, имеющую древовидную структуру. Они различны и деревьев может быть несколько. Мы спроектировали базу таким образом: есть 2 таблицы специфической информации о сущности, которые ссылаются на корневой нод дерева. Соответственно из информации этой таблице можно однозначно выбрать деревья, которые принадлежат данному типу сущностей. Вопрос в следующем. Как лучше хранить эти деревья? В одной таблице или в двух? Я считаю, что дерево, оно и в Африке дерево и нужно их хранить в одной таблице. А коллеги говорят, что раз сущности разные, то и таблицы деревьев должны быть отдельные. Когда вижу подобные рассуждения , задаю себе вопрос: зачем? В чем выгода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 11:47 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
Озверин, одна выгода в том, что дерево одно, соответсвенно и код его обслуживающий. Это с одной стороны. Но нужно всегда быть в курсе того, что ты из него выбираешь. А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. Хотя, если деревьев в таблице больше одного, в любом случае придётся указать, что выбирается какое-то конкретное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 12:21 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
[quot Баранкин] А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. quot] Да-да-да... TBL_Tree_641.... TBL_Tree_642 всё понятно ж, чё :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:09 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
ViPRossphinx_mv, Я просто сказал, что в РБД нет никаких деревьев и каталогов "А мужики-то и не знают!.." (с) Цепочка связанных таблиц вида T1->T2->...->TN представляет собой по сути ничто иное, как реализацию дерева с ограниченным количеством уровней вложенности. При этом никакая теория не запрещает практическую реализацию подобной цепочки на основе таблицы, записи которой ссылаются на другие записи этой же самой таблицы, получив при этом дерево с неограниченным уровнем вложенности. И "отсутствующие в теории" каталоги - не более, чем узлы дерева определенного типа или имеющие определенный признак (что по сути одно и то же). "Деревья" и "каталоги" - не более чем еще один из вариантов абстракции и представления взаимосвязей между данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:11 |
|
||
|
Деревья разных сущностей в одной таблице
|
|||
|---|---|---|---|
|
#18+
БаранкинОзверин, одна выгода в том, что дерево одно, соответсвенно и код его обслуживающий. Это с одной стороны. Но нужно всегда быть в курсе того, что ты из него выбираешь. А когда информация разнесена по разным таблицам, сразу из их названия понятно что и к чему. Хотя, если деревьев в таблице больше одного, в любом случае придётся указать, что выбирается какое-то конкретное. Не вижу выгоды, код можно и под разные таблицы 1 использовать. Навешивать на любую выборку where - это выгода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=50&tid=1541725]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 409ms |

| 0 / 0 |
