我正在寻找一些关于在django中创建动态模型的最佳方法的建议/意见。Django:关于设计不同领域的模型的建议
该结构需要描述产品的数据。有大约60个不同的可能数据点可能相关,每个产品根据其ProductType选择大约20个点(具有很多重叠)。大约有二十种不同的产品类型,每种产品类型都属于六个类别之一。
显而易见的方法是只将所有100个数据点放入产品模型中,然后选择并忽略任何空白字段。优点:很明显。缺点:它很丑,如果我需要添加更多的数据点,它需要更新数据库。
我的想法是让每个产品都完全抽象,只定义产品类型和其他一些识别特征。
class Product(models.Model):
productType = models.ForeignKey(ProductType)
我将不得不为每一种数据点(数字,文本,日期等)这将是这样一个单独的模型:
class TextData(models.Model):
fieldName = models.CharField(etc)
verboseName = models.CharField(etc)
data = models.CharField(etc)
product = models.ForeignKey(Product)
最后,我会做一个模型它定义了每种产品类型的相关数据类型,以及每个数据点应该被调用的内容。
class ProductType(models.Model):
name = models.CharField(etc)
....
所以今天的主要问题是:什么是填写一个产品类型的相关领域的最好方式,当他们可以改变?也许是另一种保存数据点名称/类型的模型,以及ProductType和该模型之间的ManyToManyField?一个带有XML的文本字段?定义结构的外部XML字段?放弃这一整个追求并采取更好的做法?
感谢您的帮助!