Jest to mój pierwszy post na tym forum także witam wszystkich

Mam kilka pytań odnośnie danych przechowywanych w jednym polu w bazie danych i sposobu ich pobierania.
Liczę na pomoc lub naprowadzenie mojego toku myślenia na poprawny

1. Pierwsze pytanie
Chciałbym stworzyć drzewo wartości tak jak na poniższym schemacie:
-> poziom 1
-> poziom 1.1
-> poziom 1.1.1
-> poziom 2
-> poziom 2.1
Przy założeniu że będą 3 poziomy zagłębień to niema problemu mogę zrobić w bazie 3 kolumny które będą przenosiły poziom szczegółowości. Ale jak wykonać taką funkcjonalność gdy takich poziomów chciałbym mieć X?

2. Drugie pytanie
Może okazać się, że rozwiązanie dla pytania pierwszego i 2 będzie takie samo, natomiast chciałbym jeszcze stworzyć relację danych w bazie jeden do wielu. O co mi chodzi:
np.:
Kowalski lubi sport i podczas wypełniania formularza zaznacza kilka dyscyplin sportowych. Chciałbym aby informacje które wybrał Kowalski trafiły do jednego pola w bazie danych. Nie chcę tworzyć 5 kolumn które będą opisywały zainteresowania Kowalskiego.
Chciałbym aby te dane przetrzymywane były w jednym polu np.:
mam listę zainteresowań, każde zainteresowanie ma swoje ID i żeby w takim polu była informacje 1;3;5;10 gdzie każda liczba oznacza ID zainteresowania.
I teraz tak:
a. Funkcjonalnie jest to jak najbardziej do wykonania, ale czy nie jest to przerost formy nad treścią. Stworzenie takiego mechanizmu jest troszkę skomplikowane.
b. Jak wyglądała by wydajność systemu gdy pobieralibyśmy informacje np.: 50 userów i jeszcze dodatkowo wykonywali X zapytań żeby pobrać ich zainteresowania.
c. Czy istnieje inna możliwość realizacji tego zagadnienia??
Od razu powiem kilka sów o sobie. Ekspertem w programowaniu nie jestem, ale mam troszkę pojęcia na ten temat. Potrafię posługiwać się google.pl


Pozdrawiam