我正在研究Django中的盲測項目,我想知道關於數據庫結構的最佳實踐。代表包含ForeignKeys排列的Django模型
下面是一個簡化版本的我的代碼來證明我遇到的問題:
class Product(models.Model):
name = models.CharField(max_length=200)
class Test(models.Model):
product_a = models.ForeignKey(Product, related_name='a_products')
product_b = models.ForeignKey(Product, related_name='b_products')
class Trial(models.Model):
test = models.ForeignKey(Test)
# Is there a more elegant way to represent the fact that these three
# variables are all a permutation of test.product_a and test.product_b?
order_1 = models.ForeignKey(Product, related_name='orders_1')
order_2 = models.ForeignKey(Product, related_name='orders_2')
order_3 = models.ForeignKey(Product, related_name='orders_3')
我的模型大致設置如下。單個Test
有許多Trials
。 A Trial
需要保持其test.product_a
和test.product_b
的三元組置換。我現在設置的方式根本不能捕捉到,它看起來真的很不雅。我已經考慮將整數映射到排列,並存儲與排列相對應的整數,但這看起來也不是很好。我對數據庫一無所知,所以我很樂意聽到更好的方式來構建這個數據庫。謝謝!