我正在尋找一些關於在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字段?放棄這一整個追求並採取更好的做法?
感謝您的幫助!