Страница 1 из 1

иерархия или master&detail

Добавлено: 08 фев 2006, 05:06
santilaas
СУБД - Firebird, Язык - Delphi6

Имеется несколько связанных таблиц, скажем "Организации", "Филиалы", "Отделы".

Вопрос: при создании БД лучше создать одну таблицу (по иерархическому принципу)
или связать эти 3 таблицы по принципу master-detail???

Какой подход лучше в плане быстродействия и с т.з. лёгкости создания приложения

Добавлено: 08 фев 2006, 08:41
Dimitry Sibiryakov
Entity-Relation вместе со всеми четырьмя нормальными формами нервно курят в уголке.

Добавлено: 08 фев 2006, 12:01
kdv
не надо ему деревья. дерево потом можно прикрутить, с существующей модели.

Добавлено: 11 мар 2006, 17:06
santilaas
А если ситуация такая:
есть "Филиалы", состоящие из "Отделений", они в свою делятся на "Участки".
Притом, и филиалы и отделения и участки имеют одинаковые реквизиты (ИНН, КПП и другие).

Можно это реализовать как master-detail. Но!!!
В БД есть таблица, в которой имеется внешний ключ, в качестве которого нужно выбирать владельца, т.е. первичный ключ филиала, отделения или участка. А это, как мне кажется можно реализовать только через иерархию. Или я ошибаюсь. Помогите разобраться, плз!?

Добавлено: 13 мар 2006, 05:56
SAMZ
santilaas писал(а):А если ситуация такая:
Можно это реализовать как master-detail. Но!!!
В БД есть таблица, в которой имеется внешний ключ, в качестве которого нужно выбирать владельца, т.е. первичный ключ филиала, отделения или участка. А это, как мне кажется можно реализовать только через иерархию. Или я ошибаюсь. Помогите разобраться, плз!?
Это можно реализовать и через иерархию и через связанные реляционными отношениями таблицы. Как это сделать решать тебе. По своему опыту могу сказать, что иерархические таблицы в реляцонных БД если и используются, то чаще всего в справочниках. Судя по твоему вопросу у тебя как раз справочник и есть.

Добавлено: 13 мар 2006, 13:27
santilaas
Это можно реализовать и через иерархию и через связанные реляционными отношениями таблицы
Я только не могу понять одного:
Ведь если у нас мастер-деталь, тогда, учитывая, что:
В БД есть таблица, в которой имеется внешний ключ, в качестве которого нужно выбирать владельца, т.е. первичный ключ филиала, отделения или участка
в качестве внешнего ключа мы можем указать ссылку лишь!!! на одну из таблиц: "Филиалы", "Отделения", "Участки". А нужно, чтобы владельцем для разных записей были и филиалы, и отделения и участки.
Поэтому я думаю, что задача реализуется только через иерархию!?