我应该规范django中的中间模型吗?

时间:2009-10-23 14:55:38

标签: database django models

假设我有两个成对的M2M相关模型:A,B,C,D。我创建了一个中间模型ABCD来建立它们之间的关系。如果数据库中有许多重复的列对,那就是它 将中间模型规范化为多个模型的常规做法是什么?

我关注的是: 打破ABCD会使models.py混乱 2.多列双列表是否比四列表(具有重复列对)更好?

1 个答案:

答案 0 :(得分:1)

可能有助于您设计的一些问题。

  1. 是与每个相关的所有表格 其他
  2. 所有人都必须同时存在 时间?意思是,如果A存在,做B,C 和D也存在?
  3. 他们的关系是什么? 意思是,一对多,一对 一个...等
  4. 我认为你在做什么是好的,但我更倾向于使用多个2列表(但这完全取决于你对我的三个问题的答案)。我认为2列交叉表可以更容易地进行查询和数据完整性控制。

    编辑(回复后):

    在进一步审查之后,我认为查询等更容易的方法将是单个4列表。我通常不喜欢这种方法,但如果您的数据实际上都是相关的并且都存在,那么您将使用第一种方法查询数据,从而节省很多时间。

    我必须就此建议向我的DBA朋友道歉;)