![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Структура базы - подскажите. [Access]
TechnoDreamer © (2005-09-24 03:41:00)Как лучше сделать базу.
Есть три таблицы: диск, папка, файл. (Можно и в одной, но три вроде удобнее, там не все поля одинаковые).
Все оно хранится в древовидной структуре.
Каждый диск, файл или папка уникальны и имеют свой id и id родительского элемента (для корневых это 0).
Как лучше сделать структуру этой базы, что бы иметь максимально быстрый по ней поиск на запросы вида:
всё файлы в папке "такой то" с учетом все подпапок.
atruhin (2005-09-24 17:02:00) [1]Набери в поисковике "деревья в базах данных" потом внимательно читай ссылки и думай. Так как корневой элемент у тебя диск а остальные вложенные, типично задача решается одной таблицей.
У любого диска, папки, файла есть ID, Имя, Родитель, Дата создания и т.д, если оставшаяся информация сильно различается, делаешь 3 доп. таблицы, а в основной ссылку на доп. информацию, обычная связь 1 к 1.
Способов реализации дерева есть немало, в зависимости от глубины вложенности, от необходимой скорости поиска, вставки, аналитических выборок.
Вобщем прочитай ВСЮ найденную информацию, потом задавай конкретные вопросы.
TechnoDreamer (2005-09-24 14:34:00) [2]Вложенность можент быть очень большой. Я так понимаю без рекурсии тут никак?
2Anatoly Podgoretsky: глубокомысленное утверждение конечно, только чем это может мне помочь?
Виталька2005 (2005-09-24 12:45:00) [3]Если вложенность небольшая, то можно у каждого элемента сделать
поля с id-шниками всех родителей, и при добавлении их обновлять.
Anatoly Podgoretsky (2005-09-24 11:47:00) [4]Нету никаких дисков, это все папки
TechnoDreamer (2005-09-24 11:41:00) [5]Разве это существенно? Ну вообщем у дисков немного другие поля. Плюс диск не может быть дочерним элементом другого диска, папки или файла.
А файл не может быть родителем любого другого элемента.
Sergey_Masloff (2005-09-24 08:44:00) [6]Сначала ответь чем диск отличается от папки.