Задать вопрос
DieZz
@DieZz

Как организовать хранение дерева в БД?

Пытаюсь придумать как организовать хранение связей между кроссами и муфтами. Связь - это оптический кабель, который может связывать:
  • кросс-кросс
  • кросс-муфта
  • муфта-муфта

В упрощенном виде это выглядит примерно так:
41a7cbf02a544862be1552cdb5920ec2.png
Для меня проблема заключается в том, что связь может быть либо с кроссом либо с муфтой. Сейчас вижу следующую реализацию:
3316ef93578140359cd77efb6e089354.png
Хотелось бы услышать мнения по-поводу более грамотной реализации базы данных
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Writerim
@Writerim
Заполнить позже...
objects
id | name | ident
1 | Муфта | mufta
...


links
id_object | id_child


В таблице objects храним типы объектов
В таблице links связи.
Можно усложнить добавив такую сущность в links как "схема" или какой нибудь определитель группы.
Вариации можно под конкретный случай делать
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Между таблицами `cables` и `communications` связь один-к-одному? Тогда их лучше объединить в одну таблицу.
И непонятно, в вашей системе кабель таки может связывать кросс с кроссом или всегда только кросс с муфтой?
Ответ написан
Ваш ответ на вопрос

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

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