• 每日10行代码175:按条件取出且仅取出一条记录


    假如有这样一个需求:
    有一个国王,每年要从他所管辖的n个城市的其中一个城市(或区域)找一个王妃,注意是必须找一个且只能找一个王妃。也就是说国王可以按一定的条件找王妃,但如果条件太高了,没有达到标准的,就需要降低标准。如果符合条件的太多了,就需要增高标准,直到符合条件的只有一个人。
    如果这个国家每个人的各项数据都在数据库中,那么要怎么实现这种需求呢。

    假设国王选妃标准是这样设的:

    1. 女性
    2. 未婚
    3. 18到30岁之间
    4. 有贵族血统
    5. 长相在70分以上
    6. 非独生子女
    7. 父母健在
    8. 识字
    9. 兜底条款:满足所有其他条件后仍有多人可选,那么选长相最好的。

    下面实际解释一下,以上所有条件都不是必须满足的,都是可选的,重要性是按顺序排的。
    比如国王选了一村子准备挑王妃,遇到以下情况 :

    1. 如果这个村子只有男性没有满足女性这个条件的,那么他就需要找一个男的当王妃。
    2. 如果这个村子只有2个女性,但都已经结过婚了,那么国王就不使用第2个条件,接着看第3个条件,是否在18到30岁之间,如果在18到30岁之间的只有一人,那么国王就选他当王妃。
    3. 以此类推,不断添加条件,直到符合条件的只税剩一人,或者判定流程完了之后仍有多人,那么用最后的 兜底条款确定一人为王妃。

    之所以想了这样一个需求,是因为我在现实中遇到了类似的需求 。后来我还想到了更多的类似场景:
    一个企业想从众多供应商里选一家供应商
    一个人想从众多同类型的产品中选购一个
    选一个合适的人作为妻子或老公
    选一个合适的大学

    所有的必须选择且只能选择一个的场景都有这样的需求。不同的是,我提供的例子中,先是选择了一个范围,在不同的范围内,各种情况都可能发生。还有上面的场景频率都很低,或数量很少,可以手工来选择。假如换一个场景呢?

    比如我希望有一个网站可以把每一种商品按我的规则只提供一个合适的卖家。这样我买东西时,就不用货比三家了。

    最后,那么怎么来实现这个需求呢?我目前正在思考当中,具体的实现代码还没写出来。

  • 相关阅读:
    若依分离版——使用Knife4j 自动生成接口文档
    移动文件路径却不破坏org file link的方法
    Vue模板语法下集(03)
    Selenium+JQuery定位方法及应用
    Python Matplotlib库:基本绘图补充
    git常用命令
    OceanBase社区版单节点安装搭建(Docker)
    开发板采集数据后存入数据库再在电脑上显示数据库
    redis 源码分析:Jedis 哨兵模式连接原理
    MyBatis-知识点详解
  • 原文地址:https://blog.csdn.net/weixin_44981444/article/details/126198439