gpt4 book ai didi

grails - Grails域设计:继承还是具有可空属性的一类?

转载 作者:行者123 更新时间:2023-12-02 14:51:03 25 4
gpt4 key购买 nike

我有一个域OrderItem

class OrderItem {
Product product
Packaging packaging
//other details
}

class Product {
//other details
}

class Packaging {
//other details
}

当前,OrderItem仅引用 Beers 。产品是啤酒的类型。包装是 jar /瓶/桶/ jar 等。

然后,客户决定也出售非啤酒的产品:烈酒,食材,纪念品等。

我认为这些都是OrderItem对象,但是系统当前将OrderItem视为Beers。我应该如何介绍扩展模型? (注意:某些新商品没有产品,包装或两者都没有。)
  • 继承吗?仍将OrderItem仅视为Beers。然后,所有新项目将具有扩展OrderItem的自己的类。利弊?表是按层次结构还是按类?
  • 向OrderItem添加属性(某些属性可以为空)以区分新项目吗?像“类别”,“someItemCode”,“someItemPricing”等。
  • 最佳答案

    我更喜欢第二个,添加其他属性,例如categoryitemType

    因此,在添加新字段时,迁移脚本必须将所有现有记录的itemType字段值设置为Beers(因为您拥有的所有产品都是Beers)。

    我不知道您的哪个字段将是null,但是如果您的OrderItem表仍然有许多nullable列,则需要对其进行规范化。

    关于grails - Grails域设计:继承还是具有可空属性的一类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29360499/

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