CakePHP如何使用静态值(类别)

问题描述:

我想分别为我的内容和用户分类和排名,我不确定如何使用CakePHP约定来实现此目的?CakePHP如何使用静态值(类别)

我需要创建一个模型吗?

这完全取决于这些类别应该做什么而不是做什么。你可以简单地定义一些你用来分类东西的constants。但是,是类别...

  1. 可能会有更改?你最终想添加更多吗?
  2. 可编辑?你想改变他们的名字吗?
  3. 嵌套?
  4. 应该有更多的属性,而不仅仅是他们的ID?名称,说明?

如果您对上述任何回答为“是”,则需要将它们作为数据存储在数据库中。这独立于Cake,它只是一种理智的数据建模。对于Cake来说,这意味着您需要创建一个模型。评分也是一样。

所以你必须在这些表:

  • 用户
    • 的hasMany评级
  • 类别
    • 的hasMany内容
  • 内容
    • 属于关联类别
    • 的hasMany评分
  • 评分
    • 属于关联的用户(多晶型)
    • 属于关联内容(多晶型)

您可能希望将用户评分和内容评分分为两个表格,而不是使用组合的多态表格(这意味着您有一个额外的列可以跟踪评分是针对用户还是针对内容)。

+0

甜。 Thanks Deceze,那很完美。 – Anthony 2010-09-08 01:29:01

+0

另外值得注意的是,你可以真正利用Cake的缓存,在这样的情况下,你不希望数据变化太大。开启缓存后,您几乎不会注意到应用中的性能差异。 – 2010-09-08 20:27:36

我猜你正在寻找这样的事情,如果你不想使用模式: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/

一种可能的方法使用“枚举”的事情,也许只有1-5状态。

如果您有超过10个或者您希望能够动态修改它们(标签,活动/非活动),您将需要单独的表格和模型关系。