【发布时间】:2015-04-01 00:33:20
【问题描述】:
我正在使用 Django,我的表格看起来像
class Product(models.Model):
category = models.CharField(max_length=50)
title = models.CharField(max_length=200)
class Value(models.Model):
name = models.CharField(max_length=200, unique=True)
class Attribute(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey('self', related_name='children')
values = models.ManyToManyField(Value, through='ProductAttributeRelationship', related_name='values')
class Meta:
unique_together = ('name', 'parent')
class ProductAttributeRelationship(models.Model):
product = models.ForeignKey(Product, related_name='products')
value = models.ForeignKey(Value, related_name='values')
attribute = models.ForeignKey(Attribute, related_name='attributes')
class Meta:
unique_together = ('product', 'value', 'attribute', 'price')
class Price(models.Model):
regular = models.IntegerField(blank=True, null=True)
sale = models.IntegerField(blank=True, null=True)
on_sale = models.NullBooleanField(blank=True)
created = models.DateTimeField(auto_now=True)
relation = models.ForeignKey(ProductAttributeRelationship)
class Meta:
unique_together = ('regular', 'sale', 'on_sale', 'sale_percentage')
在ProductAttributeRelationship 中使用3 个ForeignKeys 和在Price 中使用ForeignKey 是不是一个坏主意,因为ProductAttributeRelationship 可能有很多价格?我在这方面的知识不多,并且一直在阅读有关 5 种规范化表格的信息,但不确定我应该或可以在哪里适合推荐的 3rd 表格。
【问题讨论】:
标签: django database database-design orm relational-database