方法/编码方法做activitylist / log

时间:2011-07-31 22:01:28

标签: php structure code-structure

好的,所以这个问题不是关于编码程序,而是更像是一个好的,干净的方式来编写这个活动列表,我计划构建..

此活动列表将包含页面上的所有活动。

因此,基本上在页面上进行的所有操作中,它将调用类似函数insertActivity($stuff)的内容来插入关于该活动的内容,例如您刚刚执行的操作。

现在我想知道编码方式,我应该怎么做?

我是否应该在db中的行中显示“你刚刚做了些什么”的消息,或者我的数字在我的php文件中我定义的数字1代表“你刚刚做了什么”?

消息未存储在db中将帮助我稍后编辑所有活动消息的消息,例如,如果消息应更改为“您只是吃了一些东西”。

我应该这样做,就像我之前所说过的,在动作保存之前/之后调用一个函数,将此动作记录到活动列表中,还是以任何其他令人难以置信的方式执行此操作?

我想到的只是insertActivity()应该通过输入($ stuff)将活动插入到数据库中。

真的很感激这种简单而干净的编码方式。

3 个答案:

答案 0 :(得分:1)

那是......一个不可能的问题。难以回答这一事实并非不可能,因为不可能给出一个好答案,这是不可能的,因为有许多不同的好答案而没有“正确”的答案是不可能的。

关于有两个表有很多要说的,一个是用于描述,另一个是有一个引用描述ID的外键。检索值非常简单:

SELECT -- your other columns can go here.
       (SELECT DESCRIPTION FROM DESCRIPTIONS DE 
            WHERE DE.ID = DID.DESCRIPTION_ID LIMIT 1) as ACTIVITY
            -- I always add a LIMIT in a sub-query...
       -- your other columns can go here.
       FROM DID_THINGS DID WHERE USER_ID = 1;

如果有相当数量的活动(并且事先已知),MySQL会使这种类型的结构更容易一些 - 您应该查看ENUM类型。但是,使用ENUM,这将成为修改网站最烦人的方式。就个人而言,我喜欢第二个表选项,我经常使用它。如果我想拥有它以便管理员可以添加类似“你看过的东西”的东西,我可以简单地通过网络表单公开它,并将隐藏在数据库中的宝贵密钥隐藏在没有人知道的地方,包括我。 / p>

另一种常用的做法是简单地使用关联数组(或哈希,或其他)。这样做的好处是它可能不涉及数据库连接,它非常简单,测试和调试非常简单明了。由于这些(以及其他),在国际化脚本中使用它是很常见的。问题是,为了向其中一个阵列添加内容,您需要实际去,修改文件,然后将文件重新部署到站点的所有版本。现在,这通常很简单,但这是一个额外的步骤。允许用户添加到列表中非常困难(尽管不是绝对不可能),输入后编辑数据会更加烦人。

答案 1 :(得分:1)

存储动作的id是个好主意。您还可以创建“操作”表,您将存储所有可能的操作。

这样您就可以保护一些磁盘空间并使解决方案更加灵活。

您应该在操作完成后记录操作。这样您就可以验证操作是否成功。

问题非常笼统,因此很难提供更具体的答案。如果您需要帮助解决其他问题,请提供更多信息。

答案 2 :(得分:0)

取决于

  • 会有数百万行吗?
  • 你关心磁盘空间吗?
  • 是否有机会查看该日志?

您应该查看这些依赖项并考虑它。