PHP комплекс Sprintf - PullRequest
       2

PHP комплекс Sprintf

0 голосов
/ 21 июля 2011

Я делаю систему для регистрации действий пользователей, таких как покупки, которые он сделал, добавленные друзья, среди прочих. Например, когда пользователь покупает некоторые продукты, в вашем профиле должно появиться следующее сообщение:

Фу купил продукты A, B, C, D и F.

Я мог бы сохранить всю строку в базе данных, но на сайте будет более одного языка, что сделает запись для каждого языка ненадежной. Моя идея состоит в том, чтобы иметь строку с шаблоном выполненного действия и передавать ее в функцию sprintf, однако количество продуктов может измениться, поэтому количество аргументов также может быть. Как мне поступить в этой ситуации?

Редактирование # 1: Мой вопрос не о схеме базы данных, я использую следующую схему: Базы данных: создание журнала действий, как обрабатывать различные ссылки? Вопрос в том, как создать строку для sprintf, которая может получить столько аргументов, сколько необходимо. Как то так: "%s bought the products [magic here]"

1 Ответ

2 голосов
/ 21 июля 2011

Иметь уникальный код для каждого действия. Сохраните действие в нескольких полях таблицы с именем log:

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

При необходимости сопоставьте BUY понятным человеку описаниям в вашем приложении.

Вы можете выделить отдельные продукты, если это необходимо, для достижения полной нормализации ... хотя, если вам не нужно больше ничего с ними, и их представления являются краткими идентификаторами (без | в них!), То токенизация будет делать хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...