Ich muss eine Schlüssel/Wert-Tabelle in meiner Datenbank entwerfen, und ich suche nach einer Anleitung für den besten Weg, dies zu tun. Grundsätzlich muss ich in der Lage sein, Werte einer dynamischen Gruppe benannter Eigenschaften zuzuordnen und sie auf einen externen Schlüssel anzuwenden.Schlüssel/Wert-Paare in einer Datenbanktabelle
Die Operationen sind Ich muss in der Lage zu unterstützen:
- ein Schlüssel/Wert-Paar auf eine Gruppe von Elementen
- Aufzählen alle derzeit aktiven Tasten Nehmen
- alle das Bestimmen Elemente mit einem Wert für einen bestimmten Schlüssel
- Ermitteln Sie alle Elemente, bei denen der mit einem bestimmten Schlüssel verknüpfte Wert einigen Kriterien entspricht.
Es scheint, dass der einfachste Weg, dies zu tun ist, um eine Tabelle zu definieren:
CREATE TABLE KeyValue (
id int,
Key varchar...,
Value varchar...
);
Es scheint, dass ich eine Menge von Daten in der Spalte Schlüssel zu duplizieren sein wahrscheinlich, weil ich Schlüssel jeden gegebenen wird wahrscheinlich für eine große Anzahl von Dokumenten definiert. Das Ersetzen des Schlüssels varchar durch eine Integer-Suche in eine andere Tabelle scheint dieses Problem zu lösen (und macht es wesentlich effizienter, alle aktiven Schlüssel aufzulisten), hält mich jedoch mit dem Problem auf, diese Nachschlagetabelle beizubehalten (wann immer ich will) um eine Eigenschaft zu definieren und möglicherweise den Eintrag bei jedem Löschen eines Schlüssels/Werts zu entfernen.
Was ist der beste Weg, dies zu tun?
Chancen von SHA1 kollidieren sind ziemlich 0 in der Realität, müssen Sie super böse sein, um Kollisionen zu verursachen, wenn Sie super besorgt sind, könnten Sie SHA256 verwenden –
Ich habe persönlich eine Hash-Kollision (TTH) in DC++ gesehen, so ist es nicht unmöglich. – erikkallen