假如有这样一个需求:
有一个国王,每年要从他所管辖的n个城市的其中一个城市(或区域)找一个王妃,注意是必须找一个且只能找一个王妃。也就是说国王可以按一定的条件找王妃,但如果条件太高了,没有达到标准的,就需要降低标准。如果符合条件的太多了,就需要增高标准,直到符合条件的只有一个人。
如果这个国家每个人的各项数据都在数据库中,那么要怎么实现这种需求呢。
假设国王选妃标准是这样设的:
下面实际解释一下,以上所有条件都不是必须满足的,都是可选的,重要性是按顺序排的。
比如国王选了一村子准备挑王妃,遇到以下情况 :
之所以想了这样一个需求,是因为我在现实中遇到了类似的需求 。后来我还想到了更多的类似场景:
一个企业想从众多供应商里选一家供应商
一个人想从众多同类型的产品中选购一个
选一个合适的人作为妻子或老公
选一个合适的大学
所有的必须选择且只能选择一个的场景都有这样的需求。不同的是,我提供的例子中,先是选择了一个范围,在不同的范围内,各种情况都可能发生。还有上面的场景频率都很低,或数量很少,可以手工来选择。假如换一个场景呢?
比如我希望有一个网站可以把每一种商品按我的规则只提供一个合适的卖家。这样我买东西时,就不用货比三家了。
最后,那么怎么来实现这个需求呢?我目前正在思考当中,具体的实现代码还没写出来。