我有一个包含大约 100 万条重记录的大型中央数据库。在我的应用程序中,对于每个用户,我都会有来自中央表的行子集,这将非常小(每个可能有 100 条记录)。当特定用户登录时,我只想搜索这个数据集。例子:
假设我有一个世界上所有汽车的中央数据库。我有通用汽车(GM),法拉利等的用户资料。当通用汽车登录时,我只想搜索(全文搜索而不是触发 sql 查询)那些由通用汽车制造的汽车。此外,GM 可能会启动/撤回模型,在这种情况下,中央数据库将被更新,因此与 GM 关联的行集也将被更新。在收购的情况下,某些配置文件的数据库可能会在没有推出/拆除新车的情况下发生变化。所以中央数据库不会改变,但行集可能。
实现这种设计的最佳方法是什么?这些较小的行集需要是动态的,具体取决于用户活动。
我们在 Rails 2.3.5 上,使用 thinking_sphinx 作为连接器,使用 Sphinx/MySQL 进行搜索和关系关联。