嵌套python类(或django外键)的正确方法*概念/工程问题*

嵌套python类(或django外键)的正确方法*概念/工程问题*,python,django,class,foreign-keys,conceptual,Python,Django,Class,Foreign Keys,Conceptual,这与其说是一个实际的编程问题,不如说是一个概念/工程问题,但我一直在反复讨论什么是“正确的”事情。作为一个简单的背景,我在python/django方面还是有点不在行,没有太多的类操作经验 我正在尝试开发的程序是一个库存管理应用程序 有多种产品,但让我们简单地说,一种是鞋,一种是服装。这两种产品都有一些共同的属性(UPC、尺寸、颜色等),但也有一些独特的属性(鞋宽、服装类型) 此外,似乎我应该有一个单独的产品类(唯一的产品属性UPC、尺码鞋\宽度、服装\类型)和InventoryItem类(每件

这与其说是一个实际的编程问题,不如说是一个概念/工程问题,但我一直在反复讨论什么是“正确的”事情。作为一个简单的背景,我在python/django方面还是有点不在行,没有太多的类操作经验

我正在尝试开发的程序是一个库存管理应用程序

有多种产品,但让我们简单地说,一种是鞋,一种是服装。这两种产品都有一些共同的属性(UPC、尺寸、颜色等),但也有一些独特的属性(鞋宽、服装类型)

此外,似乎我应该有一个单独的产品类(唯一的产品属性UPC、尺码鞋\宽度、服装\类型)和InventoryItem类(每件存货的唯一属性,如支付的价格或条件),继承其相应的产品类属性

编辑2:服装类型是服装独有的,但鞋宽应该是实际鞋库存项目独有的,而不是鞋产品。这使问题复杂化了,因为现在我想我不仅需要单独的衣服和鞋子类,还需要衣服ventoryitem和shoeeinventoryitem类来处理库存级别的独特字段

从概念上讲,我正试图构建这个多用途的系统。用户应该能够通过django admin或spreeadsheet upload(已构建电子表格挂钩)查看产品信息(与库存无关),并添加产品和库存项目

那么对于实际问题,实现单个类的正确方法是什么?我可能会遇到哪些问题或这样做的缺点是什么?我在想象这将如何工作时遇到了一个问题

我应该:

(A)

  • 有一个ProductType字段(在“Shoe”中输入两个初始条目)& “服装”)
  • 有单独的继承ProductType的“Shoe”和“Cloth”类 通过models.ForeignKey(ProductType)。然后他们会有自己的 唯一字段,无论它们是否共享某些字段
  • 拥有一个InventoryItem类,然后通过ForeignKey继承鞋或衣服
我能看到的唯一限制是,如果没有我为新的ProductType编写一个新类,管理员用户将无法添加新的ProductType(这很好)

提前谢谢

编辑:当我最初键入这个时,替代方案是通过python嵌套类正确处理这些关系,然后将信息输入django模型类……但这似乎是多余和不必要的