|
|
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
Вопрос такой.Вот у меня есть например Таблицы: "Отдел","Департамент","Сотрудники". Все они связаны между собой в ввиде иерархической структуры,т.е.: Код: plaintext 1. 2. 3. 4. Как быть,если пользователь например вздумал создать дополнительную подкатегорию в категории сотрудники,нужно ли при этом создавать отдельную таблицу на эту новую подкатегорию,или как-то можно обойтись без нее,если можно обойтись,то как тогда хранить всю эту структуру. Дело в том,что таких подкатегорий пользователь может создавать столько,сколько он захочет,поэтому создавать таблицу в базе на каждую такую подкатегорию наверное не есть правильно,а как тогда подскажите. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 15:24 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
JulTВопрос такой.Вот у меня есть например Таблицы: "Отдел","Департамент","Сотрудники". Все они связаны между собой в ввиде иерархической структуры,т.е.: Код: plaintext 1. 2. 3. 4. Как быть,если пользователь например вздумал создать дополнительную подкатегорию в категории сотрудники,нужно ли при этом создавать отдельную таблицу на эту новую подкатегорию,или как-то можно обойтись без нее,если можно обойтись,то как тогда хранить всю эту структуру. Дело в том,что таких подкатегорий пользователь может создавать столько,сколько он захочет,поэтому создавать таблицу в базе на каждую такую подкатегорию наверное не есть правильно,а как тогда подскажите. Спасибо Вообще-то, вся иерархия вполне может описываться одной таблицей: Код: plaintext 1. А уж как ее отображать в пользовательском интерфейсе - Ваши проблемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 15:31 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
Станислав С JulTВопрос такой.Вот у меня есть например Таблицы: "Отдел","Департамент","Сотрудники". Все они связаны между собой в ввиде иерархической структуры,т.е.: Код: plaintext 1. 2. 3. 4. Как быть,если пользователь например вздумал создать дополнительную подкатегорию в категории сотрудники,нужно ли при этом создавать отдельную таблицу на эту новую подкатегорию,или как-то можно обойтись без нее,если можно обойтись,то как тогда хранить всю эту структуру. Дело в том,что таких подкатегорий пользователь может создавать столько,сколько он захочет,поэтому создавать таблицу в базе на каждую такую подкатегорию наверное не есть правильно,а как тогда подскажите. Спасибо Вообще-то, вся иерархия вполне может описываться одной таблицей: Код: plaintext 1. А уж как ее отображать в пользовательском интерфейсе - Ваши проблемы... вот какая иерархия должна быть приблизительно: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 15:38 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
Например иерархия поверх уже существующих таблиц: Иерархия(ChildType,ChildID,ParentType,ParentID) - типы соответсвуют таблицам. Таблицам - view вида "Тип1" as select ('Тип1' Type, t.xxx ID, t.zzz Name from Table1) Внешнее соединение со всеми view позволит иметь данные для отображения дерева. Но что с типами записей и связей. Нужно ли их ограничивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 15:56 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
JulTпричем это еще не предел,может быть и глубже вложенностиВы нас уровнями вложенности не пугайте, а то мы все под стол запрячемся и отвечать не сможем со страха :) Я бы на вашем месте их ложил исходную задачу как есть, без утайки и примеров из серии "предположим". Для того примера, который вы предложили - я бы сделал не три таблицы, а две. Департаменты внес в отдтелы с возможностью заводить подотделы. А сотрудников бы назначал сразу в отделы. Вспоминая обсуждение в форуме Оракла - если нужно просто "обобщенное общее дерево", то сделал бы следующее: 1) Создал бы таблицу, в которой хранил само дерево - его узлы. 2) Создал таблицу - Тип узла - в каждом узле вставлял ссылку на тип узла. далее можно прыгать и плясать вокруг всевозможных атрибутов узла и пр. и думать заводить их динамически или просто перечислить как поля таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 16:37 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
BelyДля того примера, который вы предложили - я бы сделал не три таблицы, а две.А я бы сделал 3 таблицы. 1. оргструктура (подразделения) - дерево с произвольным уровнем вложенности. 2. сотрудники. 3. связь сотрудник <---> подразделение с указанием роли в этом подразделении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 17:10 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
alexeyvg3. связь сотрудник <---> подразделение с указанием роли в этом подразделении.Прямо как Слесарь-гениколог Лишнее это ИМХО. Не вижу живых примеров надобности такого подчинения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 17:42 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
Bely alexeyvg3. связь сотрудник <---> подразделение с указанием роли в этом подразделении.Прямо как Слесарь-гениколог Лишнее это ИМХО. Не вижу живых примеров надобности такого подчинения. Не лишнее. Здесь существует три сущности: шатное расписание (таблица 1), человек (таблица 2) и приказ о назначении человека на должность (таблица 3). Если удалить таблицу 3, то при любом кадровом изменении придётся менять штатное расписание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 18:01 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
mcureenab Bely alexeyvg3. связь сотрудник <---> подразделение с указанием роли в этом подразделении.Прямо как Слесарь-гениколог Лишнее это ИМХО. Не вижу живых примеров надобности такого подчинения. Не лишнее. Здесь существует три сущности: шатное расписание (таблица 1), человек (таблица 2) и приказ о назначении человека на должность (таблица 3). Если удалить таблицу 3, то при любом кадровом изменении придётся менять штатное расписание.Минуточку.... Это другое. В изначальном примере вообще не было ничего про должности и штатное расписание. Да и фразу "3. связь сотрудник <---> подразделение с указанием роли в этом подразделении." - я понимаю как: один человек числиться в разных департаментах на разных должностях. А это к штатному рассписанию - ну никаким боком не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 18:21 |
|
||
|
Очень прошу помощи
|
|||
|---|---|---|---|
|
#18+
BelyДа и фразу "3. связь сотрудник <---> подразделение с указанием роли в этом подразделении." - я понимаю как: один человек числиться в разных департаментах на разных должностях. Это не единственное применение такой связи. Она будет "стрелять" при увольнении человека, освобождении от должности или назначении на другую должность. При работе на одной должности двух людей (каждый по 1/2 ставки). Временное исполнение обязанностей, временный перевод на другую работу и т.д. и т.п. В общем это я всё к тому, что в исходном примере таблица "Сотрудники" лишняя (ряд нужно было продолжить таблицами "Группа", "Должность") или пример чисто абстрактный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2007, 19:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34296538&tid=1544755]: |
0ms |
get settings: |
8ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 465ms |

| 0 / 0 |
