我是数据库的新手,也是Django的新用户。我需要你的帮助。
我希望有一个人数据库,例如人不同的衬衫。衬衫有不同的长度。
例如彼得有三件衬衫。红色T恤,蓝色长袖衬衫和蓝色T恤。
马库斯还有一件红色衬衫,但它应该只有长袖。
如何创建模型,其中第二个规范化的Foreign-或ManyToManyField可以具有不同的值,具体取决于顶级(Person)数据?
或者我是否需要将每件衬衫作为不同的条目(蓝色长,蓝色短裤等)并将其与此人联系起来?
Django通常会创建一个附加表,其中包含ID的ID和衬衫的ID。 有没有办法为袖子添加第三排呢?
我的Django模型是这样的:
Class Length(models.Model):
name_length = models.CharField(max_length=10) # e.g. short, long, half
Class Shirt(models.Model):
name_shirt = models.CharField(max_length=20) # e.g. red-one, blue-one
shirt_length = models.ManyToManyField(Length)
Class Person(models.Model):
name = models.CharField(max_length=20)
persons_shirt = models.ManyToManyField(Shirt)
谢谢
答案 0 :(得分:0)
可能最好的解决方案是:
class Length(models.Model):
name_length = models.CharField(max_length=10)
class Shirt(models.Model):
name_shirt = models.CharField(max_length=20)
shirt_length = models.ForeignKey(Length)
class Person(models.Model):
name = models.CharField(max_length=20)
persons_shirt = models.ManyToManyField(Shirt)
所以我们在这里,Shirst是单独的instanse,只取决于长度,如果name_shirts
与颜色相关,可能它对ForeignKey(Color)
更好,但如果它&#39} ; s与唯一名称密切相关,那么您的版本就可以了。
答案是你需要将每件衬衫作为单一条目。并且说每件衬衫TYPE应该是单个条目更为正确。因为如果彼得和马克斯的红色T恤没有区别,那么红色T恤就是一个单独的入口,不依赖于人的财物。
BTW class
以小写字母开头。