CakePHP如何使用静态值(类别)
答
这完全取决于这些类别应该做什么而不是做什么。你可以简单地定义一些你用来分类东西的constants。但是,是类别...
- 可能会有更改?你最终想添加更多吗?
- 可编辑?你想改变他们的名字吗?
- 嵌套?
- 应该有更多的属性,而不仅仅是他们的ID?名称,说明?
如果您对上述任何回答为“是”,则需要将它们作为数据存储在数据库中。这独立于Cake,它只是一种理智的数据建模。对于Cake来说,这意味着您需要创建一个模型。评分也是一样。
所以你必须在这些表:
- 用户
- 的hasMany评级
- 类别
- 的hasMany内容
项
- 内容
- 属于关联类别
- 的hasMany评分
- 评分
- 属于关联的用户(多晶型)
- 属于关联内容(多晶型)
您可能希望将用户评分和内容评分分为两个表格,而不是使用组合的多态表格(这意味着您有一个额外的列可以跟踪评分是针对用户还是针对内容)。
答
我猜你正在寻找这样的事情,如果你不想使用模式: http://www.dereuromark.de/2010/06/24/static-enums-or-semihardcoded-attributes/
一种可能的方法使用“枚举”的事情,也许只有1-5状态。
如果您有超过10个或者您希望能够动态修改它们(标签,活动/非活动),您将需要单独的表格和模型关系。
甜。 Thanks Deceze,那很完美。 – Anthony 2010-09-08 01:29:01
另外值得注意的是,你可以真正利用Cake的缓存,在这样的情况下,你不希望数据变化太大。开启缓存后,您几乎不会注意到应用中的性能差异。 – 2010-09-08 20:27:36