gpt4 book ai didi

oop - 如何对只有某些实体组才能参与角色的复杂角色关系建模?

转载 作者:行者123 更新时间:2023-12-04 21:01:06 24 4
gpt4 key购买 nike

假设我必须为餐馆的饭菜建模。

一顿饭可以由几个“组成部分”组成:

  • (薯条或米饭或楔子)
  • 和(六种不同的饮料之一)
  • 和(七种不同酱汁中的一种或两种,或者根本没有)

  • 另一餐可以包括:
  • (沙拉或米饭)
  • 和(大蒜或没有大蒜)

  • 进一步的膳食可以包括:
  • 薯条
  • 只是一杯饮料
  • 就...

  • 我该如何建模? (UML,实体关系,代码,......任何你能解释得最好的东西)

    如果您知道我想要执行的一些任务,也许它会有所帮助,所以:
  • 允许客户先选择一餐并显示所有剩余的“附加组件”。
  • 从组件列表中检测一顿饭。例如,如果客户点了薯条、酱汁和饮料,则应该可以从第一个示例中检测到这顿饭。

  • 我曾考虑将所有组件划分为文章,然后添加某种角色映射以将“薯条”标记为“芝士汉堡”、“炸肉排”、“......”的补充,但后来我想知道,我如何建模多个添加-ons,可选的附加组件,n-out-of-m 附加组件...

    我希望你能帮助我...

    最佳答案

    如果这是家庭作业,那可能没关系...
    但是 - 如果要在现实世界的应用程序中使用它,我强烈建议不要对每种食品使用具体类,即。可乐课、沙拉课、米饭课等如上推荐。
    这是使您的应用程序不灵活的可靠方法。

    拥有一个具有名称属性或类似属性的食品类和饮料类会好得多。

    想象一下,仅仅因为现在有一个新的特殊或食品项目而不得不重建你的整个应用程序......不酷;)。

    我认为其他答案中缺少的是团体的想法。
    每个食物项目可以与其他项目一起属于一个组,或者单独属于一个组。

    假设薯条、米饭和楔子属于 A 组。饮料属于 B 组。
    然后,您可以将组合建模为组列表 - 即。 1 组 A 项目和 1 组 B 项目,或 2 组 A 项目和 1 组 B 项目。

    您还可以使食物项目能够同时属于多个组...以使选项更加灵活。

    db 模型定义所有关系可能会变得复杂,但我认为这是必要的。

    也许是这样的:
    group(id, name, desc) - 一组类似的项目 - 主菜、开胃菜、饮料……或任何东西
    foodItem(id, name, desc) - 代表单个项目 - 薯条、米饭等。
    foodItem_group(foodIgem_Id, group_Id) - 将食物映射到他们的组 - 多对多
    combo(id, name, desc) - 描述一个组合
    combo_group(combo_Id, group_Id) - 将组映射到组合 - 多对多

    我认为这可以表示基本所需的模型 - 您可能需要额外的表来存储客户实际订购的内容。当然,检测客户订单是否与组合匹配取决于您的业务逻辑。

    关于oop - 如何对只有某些实体组才能参与角色的复杂角色关系建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/598158/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com