Я намерен создать несколько блоговых приложений с подобными функциями.Чтобы сократить время, затрачиваемое на управление этими приложениями, я решил создать единую систему управления контентом, которая будет контролировать их все.например.content.example.com
При разработке этой CMS я размышлял, использовать ли единую базу данных mysql, содержащую данные для всех приложений для ведения блогов.Эта единичная база данных будет находиться в приложении CMS («content.example.com»), которое другие приложения будут затем запрашивать для своих данных.
Приложение для ведения блогов:
// Блог модели.rb
class Blog < ActiveRecord::Base
establish_connection "external_cms"
end
// database.yml
external_cms:
adapter: mysql
database: root/to/external/cms_db
username: user
password: password
В этом случае база данных приложений CMS быстро станет очень большой, что приведет к замедлению запросов из приложений блогов.Даже с индексированием я знаю, что это не может быть жизнеспособным вариантом.Я также читал в нескольких блогах, чтобы учесть, что schema.rb и модели приложений для блогов должны быть идентичны таковым в приложении CMS.До сих пор в моем тестировании я обнаружил, что schema.rb совсем не должен быть одинаковым (не проверял, должны ли модели быть идентичными).
Является ли обычной практикой запускать несколько приложений из одной базы данных??А если нет, то из-за замедления запросов и головной боли, связанной с необходимостью сохранения идентичности schema.rb и моделей?
, а также индексация, каковы другие способы ускорения запросов для компенсациидля большой базы данных?
Какие у меня есть альтернативы использованию одной базы данных при сохранении одной CMS?