Ich benutze Server Side JavaScript - ja, ich benutze tatsächlich Server Side JavaScript. Um die Dinge noch komplexer zu machen, verwende ich Oracle als Backend-Datenbank (10g). Mit etwas verrückter XSLT- und mutantenähnlicher HTML-Generierung kann ich wirklich ausgefallene Webformulare erstellen - ja, ich kenne Rails und andere gleichermaßen Frameworks und wähle stattdessen den Weg des Horrors. Ich habe kein JQuery oder anderes fantastisches Framework zur Verfügung, einfach JavaScript, das von der zugrunde liegenden Engine namens Mozilla Rhino unterstützt werden sollte. Ja, es ist verrückt und ich liebe es.Benutzereinstellungen mit SQL und JavaScript
Also, ich habe eine Reihe von Tabellen zur Verfügung und einige von ihnen sind mit assoziativen Schlüsseln gefüllt, die auf Werte verweisen. Da ich ein Publikumsliebling bin, möchte ich einige raffinierte, benutzerfreundliche Lösungen hinzufügen.
Meine Benutzer haben alle eine eindeutige Benutzer-ID und diese Benutzer-ID ist während der gesamten Sitzung verfügbar.
Meine erste Idee ist eine Benutzerpräferenztabelle, wo ich "drei" Spalten habe: user_id, feature und pref_string. Mit einem Delimiter, wie: oder - (habe noch nicht über einen geeigneten nachgedacht), könnte ich einige Voreinstellungen als Liste speichern und seine Elemente in einem Array mit der .split-Methode speichern (ähnlich wie PHP) -explodierende Funktion). Die Feature-Spalte könnte wie der Tabellenname oder eine Kennung für das "Feature" sein, das ich auch mit Präferenzen verknüpfen möchte. Ich hasse Hardcoding-Objekte, vor allem, weil ich in der Lage sein möchte, diese zu sichern und diese Funktionalität anwendungsweit wiederzuverwenden. Natürlich würde ich bessere Ideen lieben, denken Sie daran, dass ich nicht einfach eine Bibliothek hinzufügen kann.
Diese Einstellungen könnten wie "verbunden" mit der Tabelle sein, so dass ich sie abfragen und ihre Werte verwenden kann.
Ich hoffe es klingt nicht zu komplex, denn naja .. es ist im Grunde etwas wirklich einfaches, was ich brauche.
Danke!
EDIT
Lets sagen, dass ich ein Dropdown-Feld ausfüllen möchten, die derzeit 10 dynamische Werte aufweist. Ich würde diese aus der Datenbank unter Verwendung einer einfachen SELECT-Anweisung erhalten:
SELECT pet, value FROM pets
Es eine Tabelle wie folgt zurückkehren würde:
dog 1
cat 2
fish 3
Ich würde dieses Feld in einem Drop-Down eingeben. Wenn ich jedoch möchte, dass Präferenzen zu dieser Tabelle hinzugefügt werden, würde wie Benutzer_ID 100 nur Säugetiere (Hund, Katze) und Benutzer_ID 200 nur Meeresbewohner (Fisch) sehen. Stellen Sie sich nun vor, dass der Tisch alle Kreaturen der Welt hat und ich viele Tische habe, die solche Vorlieben erfordern.
Da ich unbegrenzte Benutzer haben kann, müsste ich irgendeine Form von Metadaten anwenden. Lösungen, um dies zu tun, ist was ich suche.
Ihre Präferenztabelle sollte auch eine Art "Präferenztyp" -Spalte haben. Einige Einstellungen sind einfache boolesche Werte, andere können Datumsangaben oder ganze Zahlen oder Zeichenfolgen sein. Möglicherweise möchten Sie auch andere Indikatoren hinzufügen, damit die Benutzeroberfläche der Voreinstellungen etwas automatisiert werden kann - es wäre ein Wartungsproblem für jede neue Einstellung, eine eigene UI-Codierung zu benötigen. – Pointy
Oh, es ist auch nicht klar, worum du hier bittest. Ist mit Ihrer aktuellen Lösung etwas nicht in Ordnung? – Pointy
Ich weiß, dass Präferenzen nicht leicht genommen werden sollten. Aber ich habe eher einen Anfang in einem Modell, das zumindest einige "Vorlieben" haben könnte; wie Anfangswerte oder sichtbare Gegenstände. Die letzteren könnten nur boolesche Typen verwenden. – Shyam