Я создаю базу данных для хранения музыки.
Существуют разные категории, у каждой из которых есть подкатегории.Пример:
id name parentID
1 instrumentation null
2 solo_instrument null
3 Concert Band 1
4 Brass Band 1
5 Fanfare Band 1
6 Clarinet 2
7 Saxophone 2
8 Trumpet 2
С другой стороны, у меня есть таблица, в которой хранится musicID, связанный с categoryID
id categoryID musicID
1 4 1
2 8 1
3 3 2
4 6 2
Мне нужен следующий результат запроса:
musicID instrumentation solo_instrument
1 Brass Band Trumpet
2 Concert Band Clarinet
Мне сказали использовать древовидную структуру, так как в будущем, вероятно, будут добавлены другие категории, и это должно быть в состоянии поддержать это.Тем не менее, я не могу понять, как написать запрос, чтобы получить результат выше.
Я вроде получаю результат, который хочу получить, выбирая сначала инструментарий, затем solo_instrument, но это все жестко закодировано ине позволяет музыкальным трекам иметь только один родительский идентификатор, так как я выбираю их по отдельности.
Возможно ли это вообще или я должен пересмотреть структуру своей базы данных?Я хотел бы видеть ваши рекомендации.