Как лучше всего хранить иерархические данные внутри реляционной БД?
(иерархия - структура сайта).
У меня варианта лучше как
1: 2, 3, 4
4: 5, 6, 7
2: 8, 9
9: 5, 6
в голову не приходит. Но кажется здесь не по правилам БД: никакой нормализации не будет.
Что можете посоветовать? Большое спасибо!
Бегу! Опаздываю на поезд! Удачи всем!
Иерархическая БД внутри реляционной
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
-
- Неотъемлемая часть форума
- Сообщения: 732
- Зарегистрирован: 18 янв 2004, 22:29
- Откуда: Минск
- Контактная информация:
Re: Иерархическая БД внутри реляционной
Почитай теорию графов, в частности про то как они представляются в виде матриц. Там найдёшь наилучший вариант для данной задачи.
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
СТОП!
Ребята, вы что?!?!? Мне всё что надо - хранить информацию о структуре сайта! А вы прям докторские сейчас на тему напишете! ))
Мой разговор с другом привёл к тому, что графы и матрица - это совсем не в том направлении.
К сожалению сам я Теорию Графов ещё не проходил, поэтому мои познания ограничиваются Википедией.
Дело в том, что мне нужно хранить структуру... ммм.. Каталогов на диске!
Это нагляднее всего.
Предположим, каждый каталог и файл у нас имеет определенные свойства, вроде даты создания, автора, содержания, названия...
и всё это хранится в БД в таком виде:
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. Но, т.к. сейчас задача всё это перекатить на хранение ВСЕХ данных в БД, то вопрос, как оптимальнее всего хранить такую структуру в реляционной БД?
Я ведь могу просто эти строки и хранить, но... Не уверен, что это правильно с точки зрения реляционной БД.
Ребята, вы что?!?!? Мне всё что надо - хранить информацию о структуре сайта! А вы прям докторские сейчас на тему напишете! ))
Мой разговор с другом привёл к тому, что графы и матрица - это совсем не в том направлении.
К сожалению сам я Теорию Графов ещё не проходил, поэтому мои познания ограничиваются Википедией.
Дело в том, что мне нужно хранить структуру... ммм.. Каталогов на диске!
Это нагляднее всего.
Предположим, каждый каталог и файл у нас имеет определенные свойства, вроде даты создания, автора, содержания, названия...
и всё это хранится в БД в таком виде:
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. Но, т.к. сейчас задача всё это перекатить на хранение ВСЕХ данных в БД, то вопрос, как оптимальнее всего хранить такую структуру в реляционной БД?
Я ведь могу просто эти строки и хранить, но... Не уверен, что это правильно с точки зрения реляционной БД.