.. _cdb_database: Database ======== Код компонент Database інкапсулює роботу з базами даних таким чином, що при переході, скажемо, з MongoDB на PostgreSQL необхідно лише міняти код цих компонент. Приклад: .. sourcecode:: python with database.get_and_update(pk=uid) as obj: ... Database НЕ імплементує бізнес логіки! (Для цього є StateClasses) Виклики компоненти Database відбуваются тільки з Views! Serializers, StateClasses не мають робити запити до БД, зробить їх заздалегіть і покладіть в конекст запиту (він для цього існує). Таким чином робимо більш наглядною роботу з БД, що буже важливо. Наприклад, коли ми працюємо читаємо і пишемо декілька об'єктів в БД треба контролювати атомарність/конкурентність всіх або частини операцій, що просто неможливо коли запити розкидані по всьому коду. Сховище даних (Store) --------------------- .. admonition:: TODO Текст Колекції даних (Collection) --------------------------- .. admonition:: TODO Текст Автоматичні дії при записі в базу --------------------------------- .. admonition:: TODO Оновлення дати модифікації та технічних полів Індекси для бази даних по яким будується фід оновлень (Indexes) --------------------------------------------------------------- .. admonition:: TODO Текст Транзакції (Transactions) ------------------------- .. admonition:: TODO Текст