什么属性应属于页面以及属于模型的属性?

时间:2009-04-25 00:27:05

标签: ruby-on-rails django database-design architecture

假设您有一个包含有关该事件的信息的事件模型。但是关于slug,标题和元描述等内容会进入HTML?

看起来这些东西恰好属于Page模型的属性,而不属于Events模型。

有没有正确的方法呢?一种方法相对于另一种方法的优缺点是什么?

1 个答案:

答案 0 :(得分:1)

一个Event有一些一等属性和一些“派生”属性。

让我们关注Django。

例如,您的模型可能有一个很长的标题和派生的slug。

您可以轻松地为此派生数据定义类方法。

但是,在某些情况下,您需要对模型进行非规范化以使派生数据持久化。在这种情况下,您将拥有其他属性,您将通过save()方法设置这些属性。

“正确”是明确定义的 - 第3范式是正确的。如果不经常计算派生字段,您可以负担得起。在某些情况下,您必须打破3NF并保留数据以提高性能。