Frido: Wie findet ihr folgendes Vorgehen. (MYSQL)

Beitrag lesen

Moin.

Die Leute auf meiner Seite haben ein Profil das andere Mitglieder sehen können.

Es gibt verschiedene Kategorien wie zum Beispiel "Allgemeines", "Karriere", "Persönliches"

Unter diesen Kategorien gibt es verschiedene Angaben. Unter "Allgemeines" zum Beispiel: Geburtsdatum, Herkunft, Religion.

Bei manchen Angaben gibt es ein Select-Feld mit vordefinierten Optionen.
Unter Religion zum Beispiel evangelisch, katholisch, sunnitisch, schiitisch, jüdisch, buddhistisch...

Nun stekkt sich die Frage wie man das am besten in die Datenbank umsetzt.
Mein Ansatz mit Beispieleinträgen:

Tabelle user_information_category
categoryid categoryname
1          Allgemeines

Tabelle user_information_information
informationid categoryid informationname
1             1          Religion
2             1          Herkunft

Tabelle user_information_information_option
informationid optionname
1             katholisch
1             evangelisch
1             buddhistisch

user_information
userid informationid information
1      1             1
1      2             Deutschland

Meine Abfrage sähe dann so aus:

  
SELECT information, categoryname, informationname, optionname  
FROM user_information  
JOIN user_information_information ON user_information_information.informationid=user_information_information.informationid  
JOIN user_information_category ON user_information_category.categoryid = user_information_information.categoryid  
JOIN user_information_information_option ON user_information_information_option.informationid = user_information_information.informationid  
WHERE userid='1'

Wie findet ihr das Model und die Abfrage?

Gruß, Frido