Он обсуждает, как Disqus использует технику маршрутизации базы данных, используемую в Django 1.2 и более поздних версиях, которая позволяет вам подключаться к нескольким базам данных одновременно.В отличие от более ранних версий Django, Django 1.2 и выше используют словарь словарей, ключом исходного словаря которого является токен для предоставления права доступа к базе данных, а ключи внутреннего словаря отображаются на знакомые настройки Django в более старых версиях.
ForumPartitionRouter является более очевидным: разные форумы хранятся в разных базах данных (это интересно , потому что ясно, что у них есть некоторые замечательные инструменты управления, которые позволяют им определять эти разделы для своихСерверы django при запуске серверов обрабатывают каждый экземпляр Django как временный и эфемерный объект своей системы), а сервер использует forum_id для поиска и поиска нужной базы данных, из которой можно получить связанных участников форума (в данном случае,посты).db_for_read () возвращает токен, который указывает на базу данных.
Многие форумы имеют много сообщений, но у каждого сообщения есть один форум.Поскольку форумы не имеют взаимосвязей, вы можете хранить каждый форум и его сообщения в одной базе данных, полностью независимо от других форумов и их сообщений.
Если вы посмотрите пример на странице 23, из его примера ясно:
forum.post_set.all()
... то, что происходит, это то, что object_id форума используется для поиска в таблице где-то, что связывает идентификаторы форума с базами данных (не с таблицами, а с )базы данных ), которые могут находиться где-либо еще в сети.
Поэтому мне кажется, что ApplicationRouter делает нечто подобное с отношениями.Посмотрите на текст: «Вертикальное разбиение предполагает создание таблиц с меньшим количеством столбцов и использование дополнительных таблиц для хранения оставшихся столбцов».Вот что делает ApplicationRouter: когда вы используете приложение и переходите к связанному объекту в диффузной таблице, ApplicationRouter просматривает запрос и экземпляр, который нужно заполнить, и использует таблицу поиска, аналогичную таблице для ForumPartitionRouter.возвращает ключ в базу данных, в которой могут быть найдены детали этого связанного экземпляра.
Вы можете посмотреть multi-dbs здесь:
http://docs.djangoproject.com/en/dev/topics/db/multi-db/