Ich erstelle eine RESTful-API. Ich habe Schwierigkeiten, mich für den besten Weg zu entscheiden, meine Datenbanktabellen um meine Ressourcen herum zu gestalten.
Anfangs dachte ich, eine Tabelle pro Ressource wäre ein guter Weg, aber jetzt mache ich mir Sorgen, dass dies zu exponentiell größeren Tabellen führen wird, je weiter Sie sich in der Ressourcenkette befinden.
Stellen Sie sich zum Beispiel vor, ich habe drei Ressourcen - Benutzer, Kunden, Vertrieb. Benutzer sind Abonnenten meiner API, Kunden sind die Kunden der Benutzer, und Verkäufe sind Käufe, die von jedem Kunden auf das Benutzerkonto getätigt werden.
Auf eine Verkaufsressource wird wie folgt zugegriffen
GET /users/{userID}/clients/{clientID}/sales/{salesID}
Wenn es also 10 Benutzer mit jeweils 10 Kunden gibt und für jeden Kunden 10 Verkäufe, wird die Tabellengröße umso größer, je weiter wir uns in der Ressourcenkette befinden.
Ich bin ziemlich sicher, dass SQL mit großen Tabellen umgehen kann, aber ich bin mir nicht sicher, wie Lesen und Schreiben die Dinge verlangsamen werden. Das obige Beispiel veranschaulicht es vielleicht nicht, aber meine API wird immer mehr Schreib- und Lesevorgänge haben, je weiter wir uns in der Ressourcenkette befinden. Ich habe daher das Szenario, in dem die größten Tabellen in meiner Datenbank öfter gelesen und geschrieben werden als kleinere Tabellen.
Es ist auch erforderlich, Tabellen zu verknüpfen, bevor Abfragen ausgeführt werden. Der Grund ist, dass ich jedem Benutzer erlaube, einen Client mit demselben Namen zu haben. Um zu vermeiden, dass falsche Clientdaten abgerufen werden, werden die Benutzertabelle und die Clienttabellen durch {userID} verbunden. Dies gilt auch für den Verkauf. Wird das Verbinden großer Tabellen und das Ausführen von Lese- und Schreibvorgängen die Dinge weiter verlangsamen?