Django多个主键和DB规范化

时间:2014-12-28 15:57:48

标签: django database-normalization

我目前正在研究我的Django项目,我在尝试制作模型时遇到了一些麻烦,并且使用我的逻辑结构作为模板对它们进行了规范化。

我的应用需要将数据分为13列。行是它们依赖的列(虚幻列名称):

+---+---+---+---+---+---+---+---+-------+-------+-------+---+---+
| A | B | C | D | E | F | G | H |   I   |   J   |   K   | L | M |
+---+---+---+---+---+---+---+---+-------+-------+-------+---+---+
| - | - | - | B | A | A | B | B | CONST | CONST | CONST | C | C |
| - | - | - | C | B | B | C | C | -     | -     | -     | D | D |
| - | - | - | - | C | C | - | - | -     | -     | -     | - | - |
+---+---+---+---+---+---+---+---+-------+-------+-------+---+---+

A,D,E,F,G和H是唯一具有“真实”数据的列。其余的只是关系,但一旦创建它们是常量。常量命名列不依赖于任何内容,它们对于每种情况都是相同的。

应用规范化我得到了:

表一

+---+---+---+---+---+
| B | C | D | G | H | 
+---+---+---+---+---+
| x | x | - | - | - |
+---+---+---+---+---+

表二

+---+---+---+---+---+
| A | B | C | E | F | 
+---+---+---+---+---+
| x | x | x | - | - |
+---+---+---+---+---+

表III

+---+---+---+---+
| C | D | L | M |
+---+---+---+---+
| x | x | - | - |
+---+---+---+---+

我看到的问题是我不知道如何使用多个主键,其中一部分作为其他表中的主键。我应该创建某种类型的中间模型吗?

关于常量我认为不使用DB就是一个常量类模型所以我可以将它们的值用作其他模型,而不需要查询和没有额外的代码。

class Constants(models.Model):
    I = VALUE
    J = VALUE
    K = VALUE

您怎么看?

0 个答案:

没有答案