0

好的,所以这个问题与编码过程无关,而更像是一种对这个活动列表进行编码的好而干净的方法,我计划构建..

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

因此,基本上在页面上进行的所有操作上,它都会调用类似于函数的函数insertActivity($stuff)来插入有关该操作的活动,例如您刚刚做了某事。

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

我应该在 db 的行中显示“你刚刚做了某事”的消息,还是应该在我的 php 文件中定义数字 1 代表“你刚刚做了某事”?

消息未存储在数据库中将帮助我稍后编辑所有活动消息的消息,例如,如果消息应该更改为“你刚刚吃了点东西”。

我是否应该像我之前所说的那样在动作保存之前/之后调用函数,将此动作记录到活动列表中,或者任何其他更受欢迎的方式来做到这一点?

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

非常感谢一种简单而干净的编码方式来做到这一点。

4

3 回答 3

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,这成为修改站点的最烦人的方式。就个人而言,我喜欢第二个表选项并且我经常使用它。如果我想拥有它,以便管理员可以添加诸如“您观看了某些东西”之类的内容,我可以简单地通过 Web 表单公开它,并将数据库的宝贵密钥隐藏在没人知道的地方,包括我在内。

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

于 2011-07-31T22:16:43.590 回答
1

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

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

您应该在执行操作后记录该操作。通过这种方式,您可以验证操作是否成功。

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

于 2011-07-31T22:17:05.880 回答
0

这取决于

  • 会有数百万行吗?
  • 你关心磁盘空间吗?
  • 用户有机会看到该日志吗?

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

于 2011-07-31T22:04:06.517 回答