У меня есть большая центральная база данных, содержащая около 1 миллиона тяжелых записей. В моем приложении для каждого пользователя у меня будет подмножество строк из центральной таблицы, которое будет очень маленьким (вероятно, по 100 записей в каждой). Когда конкретный пользователь вошел в систему, я хотел бы искать только этот набор данных. Пример:
Скажем, у меня есть центральная база данных всех автомобилей в мире. У меня есть профиль пользователя для General Motors (GM), Ferrari и т. Д. Когда GM вошел в систему, я просто хочу искать (полнотекстовый поиск, а не запускать запрос sql) для тех автомобилей, которые производятся GM. Кроме того, GM может запустить/отозвать модель, и в этом случае центральная база данных будет обновлена, а набор строк будет связан с GM. В случае приобретения, БД некоторых профилей может меняться без запуска/снятия нового автомобиля. Таким образом, центральная база данных не изменится, но наборы строк могут.
Как лучше реализовать такой дизайн? Эти меньшие наборы строк должны быть динамическими в зависимости от действий пользователя.
Мы используем Rails 2.3.5 и используем Think_sphinx в качестве соединителя и Sphinx/MySQL для поиска и реляционных ассоциаций.