Лучший способ хранить критерии значков?

StackOverflow https://stackoverflow.com/questions/522943

  •  22-08-2019
  •  | 
  •  

Вопрос

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

Две идеи:

  • Все код
  • «Вторая система» - создайте мета -архитектуру для определения значков и их критериев. Храните некоторую информацию в базе данных и попросите кодового запроса, чтобы выяснить значки и их критерии.

Есть лучшие способы?

Это было полезно?

Решение

Правила.

Вы создаете события в системе и используете правила в процессе потока событий.

В частности, скажем, у вас есть значок «Сделал 10 постов». Вы не запускаете «Выберите счет (*) из сообщений, где пользователь =: пользователь» для каждого поста. Скорее, у вас есть простое правило, которое наблюдает за каждым постом, и «считать их», сохраняя правила состояния в профиле пользователя.

Таким образом, «Сделанные 10 постов» столь же дешево, как и «Сделанные 1 000 000».

Это также делает систему намного более расширяющейся.

Другие советы

Я согласен с Уиллом по этому поводу.

Создайте «события» на страницах, чтобы каждый раз, когда событие происходило, т.е. Пользователь удаляет сообщение, он будет запросить модуль события с событием, скажем, Event_user_delete_post, а затем вы можете выбрать это событие и построить запрос на основе его. Затем вы можете решить, присужден ли значок или нет.

Это будет держать две логики отделять и сохранить модульный дизайн. Это должно быть очень легко реализовать таким образом.

Единственным недостатком является то, что если событие не было «захвачено», то пользователь вполне мог получить критерии значка, но оно еще не было вознаграждено. Однако этого никогда не должно происходить. Единственная ситуация, о которой я могу придумать, это если база данных манипулируется вручную.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top