Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
Максим Руднев
@stigmt
Учусь
SQL
Вопрос с прошедшего собеседования: Нарисовать БД, в которой можно хранить лес деревьев произвольной ветвистости с одним атрибутом узла строкой?
На пикче опозорился, хотел сказать про связь "один ко многим". Получил такую задачу. Решил так:
. Что скажете?
Вопрос задан
более трёх лет назад
144 просмотра
Комментировать
Подписаться
1
Простой
Комментировать
Facebook
Вконтакте
Twitter
Помогут разобраться в теме
Все курсы
Яндекс Практикум
Инженер по тестированию плюс
9 месяцев
Далее
Progtips
Программирование баз данных на SQLite
2 месяца
Далее
Quality Academy
Инженер по ручному тестированию. Штучная работа
5 месяцев
Далее
Решения вопроса
1
Сергей Горностаев
@sergey-gornostaev
Куратор тега SQL
Седой и строгий
Скажу, что для этого нужна только одна таблица.
Ответ написан
более трёх лет назад
6
комментариев
Нравится
3
6
комментариев
Facebook
Вконтакте
Twitter
Андрей Николаев
@gromdron
Ну.. если у каждого уровня нужно хранить еще и собственные аттрибуты, которых нет у других "слоев", то две. Но я Вас полностью поддерживаю!)
Написано
более трёх лет назад
Максим Руднев
@stigmt
Автор вопроса
Черт! а можно подсказать реализацию или хоть какую-нибудь инфу как сделать одной таблицей?
Написано
более трёх лет назад
Александр
@alexr64
Максим Руднев
, в 1 строке хранить id родителя (если есть), список наследников (если есть) и, собственно хранимый атрибут, если есть.
Написано
более трёх лет назад
Сергей Горностаев
@sergey-gornostaev
Куратор тега SQL
Максим Руднев
, три основных подхода - это Adjacency List, Materialized Path и Nested Sets. Гугл расскажет лучше.
Написано
более трёх лет назад
Сергей Горностаев
@sergey-gornostaev
Куратор тега SQL
Максим Руднев
, вот неплохая статья, например -
Managing Hierarchical Data in MySQL
. А в PostgreSQL есть встроенная реализация materialized path -
ltree
.
Написано
более трёх лет назад
Максим Руднев
@stigmt
Автор вопроса
Сергей Горностаев
, Благодарю за советы
Написано
более трёх лет назад
Пригласить эксперта
Ответы на вопрос
0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
Войти через центр авторизации
Похожие вопросы
SQL
Простой
Почему INSERT присваивает только один символ вместо полного значения?
1 подписчик
вчера
122 просмотра
2
ответа
SQL
Простой
Правильно ли написан SQL-запрос для вывода клиентов с действующими (непогашенными) кредитами?
1 подписчик
19 окт.
177 просмотров
2
ответа
SQL
+1 ещё
Простой
Как сделать уменьшение склада в СУБД безопасными правильным?
2 подписчика
14 окт.
214 просмотров
4
ответа
Python
+2 ещё
Простой
Как получить данные в виде текста на русском языке из базы данных Paradox 4.5?
1 подписчик
23 сент.
312 просмотров
1
ответ
SQL
+3 ещё
Средний
IIS/Lansweeper сильно тормозит из-за аномального числа логонов, внутренний DDoS?
1 подписчик
15 сент.
94 просмотра
0
ответов
SQL
+1 ещё
Простой
Как объединить 2 таблицы обращаясь к одному и тому же полю 2 раза?
1 подписчик
08 сент.
194 просмотра
1
ответ
SQL
+1 ещё
Простой
Какие таблицы для продуктов (и их вариантов) в БД использовать?
1 подписчик
02 сент.
211 просмотров
1
ответ
SQL
+1 ещё
Средний
Как правильно написать запрос в SQL с NOT IN, NOT EXISTS или как-то иначе?
1 подписчик
28 авг.
186 просмотров
0
ответов
SQL
+1 ещё
Простой
Проверка связывания таблиц, как проверить?
2 подписчика
20 авг.
311 просмотров
0
ответов
PHP
+1 ещё
Простой
Как в выборке sql обратиться к предыдущей записи?
2 подписчика
30 июл.
368 просмотров
6
ответов
Показать ещё
Загружается…
Вакансии с Хабр Карьеры
Администратор баз данных/DBA (MSSQL + PostgreSQL)
Outlines Tech
До 235 000 ₽
Full-Stack Разработчик (PHP 8 / Node JS / Vue JS / PostgreSQL)
Складно
от 150 000 ₽
DevOps / Python-разработчик
ЛСЦТ
•
Москва
от 280 000 ₽
Минуточку внимания
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама