@predewill

Является ли правильными такие связи / foreign keys (древовидная структура) в базе данных?

Здравствуйте.

Есть база данных с такой структурой:

  1. Project
  2. DocumetsRepository -> родитель Project, foreign key - project_id
  3. FilesFolder -> родитель DocumetsRepository, foreign key - documents_repo_id
  4. File -> родитель FilesFolder, foreign key - files_folder_id


Получается такое - Project -> DocumetsRepository -> FilesFolder-> File

В orm не слишком удобно работать с такой структурой, например имея в наличии объект Project, чтобы достать все файлы которые принадлежат проекту нужно идти по цепочке сущностей каждый раз.

Стоит ли добавлять в таблицу сущности ключи всех родителей, например для File это будут поля: project_id, documents_repo_id, files_folder_id? Это правильный подход или принято делать как-то по другому?
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Для иерархических данных в БД эффективнее использовать nested sets.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы