RESTful API в CouchDB: как структурировать ваши документы? - PullRequest
4 голосов
/ 09 июля 2011

Поскольку CouchDB реализует RESTful API, не означает ли это, что я хочу поместить все документы одного типа в их собственную базу данных?

например.

POST http://localhost/users
GET http://localhost/users/1
PUT http://localhost/users/1
DELETE http://localhost/users/1

POST http://localhost/threads
GET http://localhost/threads/1
PUT http://localhost/threads/1
DELETE http://localhost/threads/1

Вместо того, чтобы помещать их все в одну большую базу данных (http://localhost/my_app).

Разве 100% RESTful-подход не означает, что первое правильнее?

1 Ответ

11 голосов
/ 09 июля 2011

Основная причина использования нескольких баз данных - это разделение данных по объему, в частности, создание новых представлений, сжатие и т. Д. Логически нет причин разделять их.

Простая правда в том, что БД не волнует. Также не URL-адреса. И не отдыхать. Вы можете легко создать логически схожую структуру URL в диване с помощью представлений, или, если вы сочтете это оскорбительным, вы можете использовать встроенную функцию перезаписи URL с Couch.

REST заботится об архитектуре. REST заботится о том, чтобы вы использовали уникальные URL. REST заботится о том, чтобы вы предоставляли ссылки на другие ресурсы через их URL с помощью гипермедиа. REST заботится о том, чтобы вы использовали повсеместные типы носителей. Красивые URL-адреса находятся далеко внизу списка вещей, которые волнует REST.

Если вы хотите сделать REST, сосредоточьтесь на архитектуре и типах носителей. URL-адреса в значительной степени справляются сами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...