![]() |
|
Модераторы: LSD |
![]()
|
|
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
Задача в следующем...
Есть персонал, для которого нужно организовать авторизацию на веб странице(это еще не проблема). При этом персоны из этого персонала относятся к друг другу как начальник_уровень0(Персона1, Персона2) //Персона1 есть начальник персоны2; начальник_уровень1(Персона1, Персона2) начальник_уровень2(Персона1, Персона2) ... Графически - это дерево... Подумав немного можно предложить такую модель: Все Персоны хранить в таблице Персонал, где иметь поле начальник со значениями: начальник0, начальник1, начальник2 Завести дополнительные таблицы начальник_уровень0,начальник_уровень1,начальник_уровень2,... где и связывать иерархию персон по ID (можно завести только одну таблицу начальник_уровень, где завести еще поле тип_иерархии:уровень0,уровень1,уровень2) Но такие модели не предусматривают проверку, что началник0 в иерархии, есть действительно начальник для персон(ы) из уровня 1, а не из 2 (начальник уровня0 НЕ может быть начальником персоны из уровня 2, только для 1(это ДЕРЕВО)) Как все-таки организовать такую модель? ПС. Можно, конечно, завести разные таблицы для всех персон из разных уровней и затем их связывать - тут ошибок быть не может... |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Что-то я непонял что значит уровень.
И получается:
у тебя между Персона1 и Персона2 - две связи? Тогда это не дерево. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
нет.
Персона1 и Персона2 понятия собирательные... Читай начальник_уровень0("Иванов", "Петров") начальник_уровень0("Краснов", "Шубейко") начальник_уровень1("Петров", "Скаба") начальник_уровень1("Петров", "Турбин") начальник_уровень1("Петров", "Кашкин") начальник_уровень2("Скаба", "Перышкин") начальник_уровень2("Скаба", "Крышин") |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Класически дерево хранится в виде указателя на родительский объект. Т.е. в данном случае:
Если под уровнем понимается глубина в дереве, то она не хранится, но ее можно вычислить. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: нет Всего: 5 |
начальникПодразделенияИмеетПочиненногоНачальникОтдела("Иванов", "Петров") начальникПодразделенияИмеетПочиненногоНачальникОтдела("Краснов", "Шубейко") начальникОтделаИмеетПочиненногоНачальникЛаборатории("Петров", "Скаба") начальникОтделаИмеетПочиненногоНачальникЛаборатории("Петров", "Турбин") начальникОтделаИмеетПочиненногоНачальникЛаборатории("Петров", "Кашкин") начальникЛабораторииИмеетПочиненногоНачальникЛаборанской("Скаба", "Перышкин") начальникЛабораторииИмеетПочиненногоНачальникЛаборанской("Скаба", "Крышин") Добавлено @ 10:07 И как я уже говорил: начальникПодразделения может имееть починенных только НачальникОтдела НачальникОтдела может имееть починенных только НачальникЛаборатории НачальникЛаборатории может имееть починенных только НачальникЛаборанской А это и есть проблема - какая должна быть модель, что бы "нельзя было нарушить" эти условия? |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |