假设如下:
我有一个实体“producer”,它有一个“id”、“alias”和其他属性。别名可以更改。然后我有一个实体“items”,它有一些属性,由producer生成(在关系数据库中,它在“producer.id”上有一个外键)。
现在假设我想让用户搜索项目,并且生产者的别名也是在项目搜索中搜索的一个选项。
我也可以找制片人。所以我有一个索引“producer”和一个索引“items”。
在项目搜索中搜索别名的最佳方法是什么?
我是否在“items”索引中添加“alias”作为字段(这意味着我必须重新编制索引,当别名发生更改时,这种情况并不经常发生)
或
我是否先用别名搜索生产者,然后用id在第二个请求中搜索项目(然后将id字段添加到items索引中)
提前谢谢!
1条答案
按热度按时间ykejflvf1#
从性能和实现的Angular 来看,父子关系是代价高昂的,分布式系统的主要功能和能力来自于数据的非规范化,以及您需要的所有数据同时可用的情况。
对于可伸缩的应用程序来说,第一种选择是一种非常常见而且通常是首选的方法,而且在您的情况下,它的成本更低,正如您所提到的,它不会经常更新。因此,我建议您使用第一个选项,但是您可以自己进行性能和实现比较,并根据您的用例选择最适合的选项。