在元组与表中存储常量

时间:2013-10-05 19:14:24

标签: sql django

何时在表和元组中存储常量值的最佳做法是什么?例如,最好这样做:

class ModelA(models.Model):
  SOME_VALUES = (
   (0, 'A1'),
   (1, 'A2'),
   (2, 'A3'),
  )

  fieldA = models.IntegerField(choices=SOME_VALUES)

或为常量值设置另一个模型:

class ConstantValue(models.Model):
  text = model.CharField(max_length=2)

class ModelA(models.Model):
  fieldA = models.OneToOneField(ConstantValue)

并且夹具将填充ConstantValue

我在我的代码中结合了以上内容,但我想要一些一致性。

那么多对多的关系呢?我有一个带有上述常量的模型和另一个指向具有ManyToManyField关系的常量模型的模型。它类似于Django tutorial's pizza example。但我想我可以拥有这个:

class Topping(models.Model):
  TOPPINGS = (
   (0, 'Tomato'),
   (1, 'Peppers'),
   ...
  )

  topping = models.IntegerField(choices=TOPPINGS)

class Pizza(models.Model):
  topping = models.ForeignKey(Topping)

1 个答案:

答案 0 :(得分:0)

我有一个非常基本的答案:

每当您的域名发生变化时,请使用另一个(domain_)表(或其他类),如pizzaname;如果你没有看到改变的机会 - 比如性别(m / f /不知道)保持简短,尽管性别(条目)可能会改变,范围不会(或者很可能不会)