我有这个型号:
class Floor(models.Model):
label = models.CharField(null=False, blank=False, max_length=100)
class Area(models.Model):
label = models.CharField(null=False, blank=True, max_length=100)
floor = models.ForeignKey(Floor)
class Room(models.Model):
label = models.CharField(null=False, blank=True, max_length=100)
area = models.ForeignKey(Area)
有时,如果房间没有设置在地板的特定区域,则可以。
然后,我考虑了两种选择。
选项1:我保留了这个数据结构,并创建了一个" label = default"未指定区域时的区域。
选项2:我改为这个模型:
class Floor(models.Model):
label = models.CharField(null=False, blank=False, max_length=100)
class Area(models.Model):
label = models.CharField(null=False, blank=True, max_length=100)
floor = models.ForeignKey(Floor)
class Room(models.Model):
label = models.CharField(null=False, blank=True, max_length=100)
area = models.ForeignKey(Area, null=True)
floor = models.ForeignKey(Floor)
这两个选项看起来都不错,但你的pro / con建议是什么?
答案 0 :(得分:0)
建筑物怎么没有地板?我会给每栋建筑至少一层并使用第一个选项。
因为在选项2中,您将有多余的FK建筑物(包括房间和地板)