2016-04-05 7 views
0

Wenn ich mehr Schlüssel-Wert-Paare in Azure Blob Storage wie:Erstellen von Tabellen mit einer zu vielen Beziehungen oder nur eine Tabelle mit einer einzigen Spalte

-/files/key1 
    -/files/key2 
    -/files/key3 

Und jeder Schlüssel wird von einem Benutzer hochgeladen, sondern einem Benutzer kann mehrere Schlüssel hochladen, was ist der beste Tabellendesign in meiner SQL-Datenbank, um zu referenzieren, welche Schlüssel welchem ​​Benutzer zugeordnet sind?

A) Tabelle mit einzelnen Spalte - Jedesmal, füge ich eine Datei zu BLOB-Speicher füge ich eine Zeile in einer einzigen Spalte Tabelle mit dem Benutzernamen und dem Schlüsselwert dh zugeordnet:

AssociationColumn 
-User1+key1 
-User2+key2 
-User1+key3 

Wird diese langsam in Nachschlagen aller Schlüssel für User1 zum Beispiel, wenn ich abfrage mit einer Art von Regex beginnt mit? Wird diese zweispaltige Spalte mit dem Benutzer als eine Spalte und der Schlüssel als eine andere Spalte die Leistung beeinträchtigen? Wie kann ich diese Eins-zu-Viele-Beziehung erreichen?

Ist es auch schlecht, Schlüssel mit einem Bezeichner wie 1-2-n zu speichern? Irgendwelche Vorschläge zum Erstellen von eindeutigen Bezeichnern, die in den Raum von Varchar (MAX) passen?

Antwort

0

Der richtige Ansatz in einer relationalen Datenbank ist eine Junction-Tabelle. Dies würde zumindest zwei Spalten:

  • User
  • Key

Sie diese nicht in einer einzigen Spalte setzen würde - ich glaube, nicht einmal in Azure.

+0

Also nur eine Tabelle mit diesen beiden Spalten? – Pipeline

+0

@Pipeline. . . Ja, zu diesem Zweck. –

+0

Wäre dies besser als zwei Tabellen mit wie: Tabelle 1 Benutzername userId Tabelle 2 Schlüssel userId – Pipeline

Verwandte Themen