好的,所以这个问题不是关于编码程序,而是更像是一个好的,干净的方式来编写这个活动列表,我计划构建..
此活动列表将包含页面上的所有活动。
因此,基本上在页面上进行的所有操作中,它将调用类似函数insertActivity($stuff)
的内容来插入关于该活动的内容,例如您刚刚执行的操作。
现在我想知道编码方式,我应该怎么做?
我是否应该在db中的行中显示“你刚刚做了些什么”的消息,或者我的数字在我的php文件中我定义的数字1代表“你刚刚做了什么”?
消息未存储在db中将帮助我稍后编辑所有活动消息的消息,例如,如果消息应更改为“您只是吃了一些东西”。
我应该这样做,就像我之前所说过的,在动作保存之前/之后调用一个函数,将此动作记录到活动列表中,还是以任何其他令人难以置信的方式执行此操作?
我想到的只是insertActivity()应该通过输入($ stuff)将活动插入到数据库中。
真的很感激这种简单而干净的编码方式。
答案 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)
取决于
您应该查看这些依赖项并考虑它。