2011-01-10 6 views
0

Ich beginne mit der Arbeit an einem Projekt, das mehrere Websites für einen Kunden hat. Für "analytische" Zwecke müssen Messwerte über Websites hinweg über einen bestimmten Zeitraum hinweg gemessen werden. Das bedeutet, dass ich das Datenmodell und alle möglichen Fragen/Antworten/Lookup-Werte zentralisieren muss, damit es auf verschiedenen Websites verwendet werden kann. Die Frage, die ich habe, ist:Datenzuordnung über Websites?

Beispiel: Altersbereich eines Benutzers besuchen Website 1 ist sagen: 30-39 Jahre alt. (Wir bitten um Altersgrenze, wenn sie eintreten). Daher habe ich im Datenmodell eine Nachschlagetabelle für Antworten, in der alle möglichen Antworten auf allen Websites verwendet werden. Also (30-39) hat PK ID von sagen 102. Jetzt in Website 2, das gleiche, so wieder (30-39) hat PK von 102. So kann ich über Websites die gleiche Altersspanne messen. Aber das Problem ist, wo oder wie man die Antwort des Benutzers speichert und diese auf diese ID abbildet?

Wenn ich eine Tabelle namens say UserAnsers habe, hat es eine AgeRange colunm. Mache ich dies ein FK in der Antwort Tabelle bei PK 102 zu speichern (30-39) für den Benutzer? Wenn ja, welcher Wert wird dann in der Tabelle "Userswer" geschrieben, wäre es 102?

Zweitens muss ich Textfelder auch messen. Zum Beispiel, wie viele Websites vollständig sind. Sagen Sie also das Feld "E-Mail-Adresse". Ich gebe diesem Textfeld eine Feld-ID von 10. Wenn ich die E-Mail des Verbrauchers von [email protected] in die E-Mail-Spalte der Antworten-Tabelle schreibe, wie werde ich dies mit dem Feld ID 10 verknüpfen?

Antwort

0

Ich würde wahrscheinlich eine API für jede Website erstellen, die die gewünschten Daten in einem konsistenten Format ablegt, das ich dann in eine separate Datenbank laden könnte, wo ich dann die Metriken ausführen würde.

Dies wird undurchführbar, wenn die Daten so groß sind, dass es jede Nacht Stunden dauert, um die Daten zu migrieren. Aber ansonsten ist es eine Lösung, die den Vorteil hat, dass Sie die aktuellen Schemas nicht berühren müssen.

Wenn die Sites nicht bereits vorhanden sind, dann würde ich nur ein konsistentes Datamodel auf allen Sites erzwingen, was trivial ist. Es spielt keine Rolle, wo das Mapping zwischen "30-39" und "102" abgebildet wird. Wichtig ist nur, dass es überall gleich ist und Sie es dann beim Erstellen der Datenbanken einrichten.

Wenn Sie möchten, dass sich die Werte und Schemata stark ändern, wäre die Verwendung nur einer Datenbank für alle Sites wahrscheinlich besser, aber wenn Sie dies nicht tun können, dann exportieren Sie für jede Site.