【发布时间】:2010-12-09 11:57:39
【问题描述】:
假设我有四个成对的 M2M 相关模型:A、B、C、D。我创建了一个中间模型 ABCD 来建立它们之间的关系。如果数据库中有很多重复的列对,是 将中间模型规范化为多个模型的正常做法?
我担心的是: 1.分解ABCD会使models.py杂乱无章 2. 多个 2 列表是否比一个 4 列表(带有重复的列对)更好?
【问题讨论】:
假设我有四个成对的 M2M 相关模型:A、B、C、D。我创建了一个中间模型 ABCD 来建立它们之间的关系。如果数据库中有很多重复的列对,是 将中间模型规范化为多个模型的正常做法?
我担心的是: 1.分解ABCD会使models.py杂乱无章 2. 多个 2 列表是否比一个 4 列表(带有重复的列对)更好?
【问题讨论】:
还有一些可能对您的设计有所帮助的问题。
我认为您所做的还可以,但我更倾向于使用多个 2 列表(但这完全取决于您对我的三个问题的回答)。我认为 2 列相交表便于查询和数据完整性控制。
编辑(在您回复后):
在对此进行进一步审查后,我认为更容易查询等的方法将是单个 4 列表。我通常不喜欢这种方法,但如果您的数据实际上都是相关的并且都存在,那么使用第一种方法查询数据会节省很多时间。
我必须就此建议向我的 DBA 朋友道歉;)
【讨论】: