【发布时间】:2009-12-10 10:11:30
【问题描述】:
我有一个使用“兑换码”概念的应用程序(架构:ID, NAME, USES, CODE)。例如"32, Stack Overflow, 75, 75%67-15hyh"
因此,假设此代码提供给 SO 社区,它有 75 次兑换。您可以通过输入一些运输信息和代码来兑换它。输入后,将执行此检查:
if (code exists){
if (count_entries_where_code=$code < $uses_set_at_creation){
//enter information into DB for processing
{
//echo "sorry, not a real code"
}
因此,总使用次数是硬编码的,但当前的兑换次数是通过 SQL 查询 (count_results from entry_data WHERE code=$code) 生成的。这部分工作正常,但问题是:
在我管理代码的 view 页面上,我进行了基本设置(在伪 PHP 中,将真正的代码分离到 MVC 设置中):
$results = "SELECT * FROM codes";
foreach ($result as $code){
echo $code->code;
echo $code->name;
//etc. It's actually all in a nice HTML table.
}
所以我想有一列列出“代码上剩余的使用次数”。像这样的东西应该存储在数据库中,并以这种方式提取吗?使用foreach 循环生成会更容易,但我通常不喜欢存储这样的“生成”统计信息。有没有一种聪明的方法可以将这些结果放到使用 foreach 循环创建的表的正确行上?
(我对代码很好,所以我不需要一个工作/很好的语法示例,只是对可能适合这个问题的模式的解释,也许是对类似这样的通用设计的讨论。我是右以避免存储可生成的数据,如使用次数左?等)
【问题讨论】:
-
等一下。你刚才是说你在 view 中有那个代码吗?
-
请放心,这实际上是我的模型和视图的精简版。我使用 CodeIgniter,事情被很好地分开了。不过感谢您的关注,如果这一切都在“视图”中,我也会担心。
-
哦,很好。谢谢,你拯救了我的夜晚;)
标签: php mysql design-patterns architecture