Иерархическая БД внутри реляционной

Все о программировании под *nix
Аватара пользователя
Victor Gr.
Неотъемлемая часть форума
Сообщения: 891
Зарегистрирован: 13 авг 2004, 15:39
Откуда: Минск
Контактная информация:

Иерархическая БД внутри реляционной

Сообщение Victor Gr. »

Как лучше всего хранить иерархические данные внутри реляционной БД?
(иерархия - структура сайта).

У меня варианта лучше как
1: 2, 3, 4
4: 5, 6, 7
2: 8, 9
9: 5, 6

в голову не приходит. Но кажется здесь не по правилам БД: никакой нормализации не будет.

Что можете посоветовать? Большое спасибо!

Бегу! Опаздываю на поезд! Удачи всем!

Lioxa
Неотъемлемая часть форума
Сообщения: 732
Зарегистрирован: 18 янв 2004, 22:29
Откуда: Минск
Контактная информация:

Re: Иерархическая БД внутри реляционной

Сообщение Lioxa »

Почитай теорию графов, в частности про то как они представляются в виде матриц. Там найдёшь наилучший вариант для данной задачи.

Аватара пользователя
Victor Gr.
Неотъемлемая часть форума
Сообщения: 891
Зарегистрирован: 13 авг 2004, 15:39
Откуда: Минск
Контактная информация:

Сообщение Victor Gr. »

СТОП!
Ребята, вы что?!?!? Мне всё что надо - хранить информацию о структуре сайта! А вы прям докторские сейчас на тему напишете! :)))

Мой разговор с другом привёл к тому, что графы и матрица - это совсем не в том направлении.

К сожалению сам я Теорию Графов ещё не проходил, поэтому мои познания ограничиваются Википедией.

Дело в том, что мне нужно хранить структуру... ммм.. Каталогов на диске!

Это нагляднее всего.

Предположим, каждый каталог и файл у нас имеет определенные свойства, вроде даты создания, автора, содержания, названия...

и всё это хранится в БД в таком виде:

0 :: /
1 :: etc
2 :: home
3 :: var
4 :: lib
5 :: victor
6 :: apt
7 :: apache2
8 :: tmp
9 :: log

А теперь как это записать, чтобы дать представление о структуре?

0 :: 1 , 2 , 3 , 8
1 :: 6 , 7
3 :: 9 , 4
2 :: 5

Примерно так. По такой структуре я могу восстановить всю иерархию каталогов.

И такую структуру я сейчас храню в txt-файле для сайта Карловы Вары - http://vary.ru. Но, т.к. сейчас задача всё это перекатить на хранение ВСЕХ данных в БД, то вопрос, как оптимальнее всего хранить такую структуру в реляционной БД?

Я ведь могу просто эти строки и хранить, но... Не уверен, что это правильно с точки зрения реляционной БД.

Ответить