Mailinglisten-Archive |
Hallo Liste, kleine Designfrage: Wie würde man am geschicktesten User-Einstellungen wie Name, Vorname, Sprache, etc. so abspeichern? Man kann natürlich alles in eine Tabelle werfen. Und sobald eine neue Eigenschaft hinzu kommt müsste man eine neue Spalte hinzufügen. Ist ja auch ok, so lange ich der Admin bin. Sobald ich aber ein System beim Kunden installiere sollte dieser selbst in der Lage sein, weitere Felder hinzuzufügen. Meine Idee ist, dass ich eine User-Tabelle habe, in der die wichtigsten Daten wie Id, Loginname und Passwort gespeichert sind. Alle weiteren Attribute speichere ich in einer Extra-Tabelle: User_Id int SettingName varchar SettingValue text Über einen Join könnte ich dann gezielt auf eine spezielle Eigenschaft zugreifen: SELECT SettingValue FROM User AS u, Setting AS s WHERE u.Id = s.User_Id AND s.SettingName = 'LANGUAGE' Settings könnten dabei Boolean-Werte, Strings und Zahlen sein. Eigentlich beliebig, da ich sie in ein Textfeld speichere. Das ist zwar Speicherfressend, aber da das von mir geplante System maximal 1000 User vertragen muss nicht weiter schlimm. Welche Nachteile kann so eine Vorgehensweise haben? Gibt es bessere Alternativen? Danke für die Hilfe, Arash --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive