2009-07-22 6 views
0

In diesem Fall beziehe ich mich speziell auf Google Friend Connect - Social Bar-Parameter. Benutzer können aus verschiedenen Parametern wählen, wenn die Einrichtung ihrer Socialbar heißenWie soll ich benutzerdefinierte Parameter in einer Datenbank speichern?

skin['BORDER_COLOR'] = '#cccccc'; 
skin['ENDCAP_BG_COLOR'] = '#e0ecff'; 
skin['ENDCAP_TEXT_COLOR'] = '#333333'; 
skin['ENDCAP_LINK_COLOR'] = '#0000cc'; 
skin['ALTERNATE_BG_COLOR'] = '#ffffff'; 
skin['CONTENT_BG_COLOR'] = '#ffffff'; 

Ich will diese benutzerdefinierten Werte in einer MySQL-Tabelle speichern, aber ich will kein Feld für jeden möglichen Parameter erstellen.

Ich dachte an sich in eher einen JSON-Typ String in einem Feld zu speichern:

{"BORDER_COLOR":'#cccccc',"ENDCAP_BG_COLOR",'#e0ecff'} 

Oder wie ein INI-Datei vom Typ Array. Bin ich verrückt?

Der Grund ist, dass ich mich mit einer variierten Anzahl von Parametern befasse und es in der Zukunft mehr geben könnte, was bedeuten würde, ein weiteres Feld zu einer existierenden Tabelle hinzuzufügen.

Antwort

2

Es funktioniert, und wäre sehr einfach, die Daten in eine Klasse zu analysieren.

Es wäre jedoch ziemlich ärgerlich, Aktualisierungen in der Datenbank vorzunehmen, wenn Sie allen Benutzern einen neuen Parameter hinzufügen oder einen bestimmten Parameter ändern/korrigieren müssen, da Sie eine Anwendung schreiben müssen oder verwenden Sie String-Manipulationsfunktionen.

Eine einfache alternative DB Struktur, die Sie verwenden können:

TABLE PREFERENCES 
(
USER int not null 
KEY varchar(20) 
VALUE varchar(20) 
) 

So ein Rekord woud:

USER=1234 
KEY='ALTERNATE_BG_COLOR' 
VALUE='#ffffff' 
+0

Ja, ich würde dies vorschlagen, es ist so, wie ich es tun würde. – codemonkey

Verwandte Themen