PHP复杂的Sprintf

时间:2011-07-21 16:06:30

标签: php printf

我正在建立一个系统来记录用户的操作,例如购买的商品,添加的朋友,以及其他人。例如,当用户购买某些产品时,您的个人资料中应显示以下消息:

  

Foo购买了产品A,B,C,D和F.

我可以将整个字符串保存在数据库中,但该网站将使用多种语言,这将使每种语言的记录保持不变。我的想法是使用一个带有所采取操作模板的字符串并将其传递给sprintf函数,但是,产品数量可能会改变,因此参数的数量也会改变。在这种情况下,我该怎么办?

编辑#1:我的问题与数据库架构无关,我使用的架构是:Databases: Making a Log of actions, how to handle various references?,问题是如何使字符串与sprintf可以根据需要接收尽可能多的参数。 这样的事情:"%s bought the products [magic here]"

1 个答案:

答案 0 :(得分:2)

为每个操作提供唯一的代码。将操作存储在名为log的表中的许多字段中:

user      action      products
-----------------------------------
Foo       BUY         A|B|C|D

根据需要将BUY映射到应用程序中的人类可读描述。

如果需要,您可以将各个产品分开,以实现完全规范化......但如果您不再需要它们,并且它们的表示形式是简洁的ID(其中没有|!)那么令牌化会很好。