Я создаю RESTful API. Я изо всех сил пытаюсь выбрать лучший способ для создания моих таблиц базы данных вокруг моих ресурсов.
Изначально я думал, что таблица с ресурсом будет хорошим способом, но теперь я беспокоюсь, что это приведет к экспоненциально большим таблицам по мере продвижения по цепочке ресурсов.
Например, представьте, у меня есть три ресурса - пользователи, клиенты, продажи. Пользователи являются подписчиками моего API, клиенты - это пользователи-пользователи, а продажи - это покупки, совершаемые каждым клиентом в учетную запись пользователя.
Ресурс продажи доступен следующим образом
GET /users/{userID}/clients/{clientID}/sales/{salesID}
Таким образом, если есть 10 пользователей, каждый из которых имеет 10 клиентов, и на каждого клиента приходится 10 продаж, размер таблицы увеличивается по мере продвижения по цепочке ресурсов.
Я вполне уверен, что SQL справится с большими таблицами, но я не уверен, что чтение и запись замедляют работу. Возможно, приведенный выше пример не иллюстрирует это, но мой API будет постепенно записывать и читать дальше по цепочке ресурсов. Поэтому у меня есть сценарий, при котором самые большие таблицы в моей базе данных будут считываться и записываться в большее количество раз, чем меньшие таблицы.
Также необходимо будет объединить таблицы перед выполнением запросов. Причина в том, что я разрешаю каждому пользователю иметь клиента с таким же именем. Чтобы избежать получения неверных данных о клиентах, таблица пользователей и таблицы клиентов объединяются {userID}. Это также относится и к продажам. Замедлится ли объединение больших таблиц и выполнение операций чтения и записи?