1

何时将常量值存储在表中与元组中的最佳实践是什么。例如,这样做是否更好:

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 教程的比萨示例。但我想我可以有这个:

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

  topping = models.IntegerField(choices=TOPPINGS)

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

1 回答 1

0

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

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

于 2013-10-05T19:23:38.457 回答