假设我必须对一个晚餐的餐点进行建模。
一顿饭可以包含几个“组成部分”:
另一餐可以包括:
进餐包括:
我该如何建模? (UML,实体关系,代码,...您能最好解释的内容)
如果您知道我要执行的某些任务,则可能会有所帮助,因此:
我曾考虑过将所有组件划分为文章,然后添加某种角色映射以将“炸薯条”标记为“芝士汉堡”,“炸肉排”,“...”的补充,但后来我想知道如何对多个添加进行建模插件,可选插件,n个out-of-m插件...
我希望你能帮助我...
最佳答案
如果这是家庭作业,那就没关系了...
但是-如果要在实际应用中使用它,我强烈建议您不要为每种食品使用具体的类,即。上面推荐的可乐类,沙拉类,米饭类等。
这是使您的应用程序不灵活的肯定方法。
拥有食品类和饮料类并具有名称属性或类似属性会更好。
想象一下,仅由于现在有一个新的特殊商品或食品而不得不重建整个应用程序……不酷;)。
我认为其他答案缺少的是一个小组的想法。
每个食品可以与其他食品一起属于一个组,也可以单独属于一个组。
说薯条,米饭和楔子属于A组。饮料属于B组。
然后,您可以将组合建模为组列表-即。 1个A组项目和1个B组项目,或者两个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/