Ich habe eine Datenbank mit 2 IndexedDB Objekt speichert erstellt. So könnte ich erzählen, als wäre es ein Zukunftsschlüssel. Die Datenbank enthält einen Objektspeicher, der Patienten genannt wird, und der andere heißt Beweis, der dann mit Patienten verbundene Tests hinzufügen wollte.Wie kann ich Objektspeicher in IndexedDB beziehen?
Antwort
In IndexedDB selbst nicht eine Beziehung zwischen zwei objectStores aufbauen kannst. IndexedDB ist kein relationales Datenbanksystem. Wenn Sie eine Beziehung haben möchten, müssen Sie diese Beziehung in Ihrem JavaScript-Code implementieren.
Wenn Sie eine 2 objectStores das heißt die Objekte enthalten:
patient = {"number":"1234", name:"Michael Foo"}; // where "number"is the key
evidence = {"id":"1","content":"yes, its true","patientId":"1234"}; // where "id" is the key
können Sie "Patienten_ID" als Index definieren. So können Sie nach "patientId" suchen. Wenn Sie beide zusammen benötigen, erstellen Sie eine Abfrage für den Patienten und verwenden dann den Wert "number", um eine Abfrage für den Index "patientId" durchzuführen. Du hast also beides.
Wenn Sie z. B. Daten von 2 Objektspeichern löschen möchten und sicher gehen wollen, dass die Werte in beiden Objektspeichern gelöscht werden, können Sie dies in einem transaction tun. Wenn also ein Teil einer Transaktion einen Fehler auslöst, können Sie die Lochtransaktion abbrechen, um sie rückgängig zu machen ...