Крот
Новичок
memcache, изменение цепочек хэшей
Еще раз привет!
Допустим, у меня есть БД с вот такой структурой (возможно не очень хороший пример, сорри)...
users
user_id
username
messages_new - кол-во новых приватных сообщений у пользователя
messages_incoming_total
messages_outgoing_total
messages
message_id
owner_id
recipient_id
body
В мемкэше я храню значение messages_new, messages_incoming_total, messages_outgoing_total
Когда пользователь A создаёт приватное сообщение пользователю B, то я должен обновить messages_new, messages_incoming_total, messages_outgoing_total у пользователя B и часть этих хэшей у пользователя A. (Я понимаю, что не очень разумно хранить такие значения в отдельных хэшах, но это только пример)
Таким образом, при создании нового приватного сообщения я должен запустить целую цепочку ф-ий, которые произведут необходимые изменения в хэшах мемкэша (да, конечно - тэгирование помогает определенным образом, но это в структурном плане, а не в реализации). Согласитесь, что не очень удобно пихать вызов этих ф-ий прямо в ф-ию добавления приватного сообщения в БД.
Как быть в таком случае?
Возможно стоит вынести все цепочки в отдельный класс (а-ля handler'ы)?
Если да, то как передавать экземпляр такого handler'а в DataMapper (который ответственен за работу с БД)?
Ёлки палки, сплошные вопросы... извиняюсь.
Спасибо!
Еще раз привет!
Допустим, у меня есть БД с вот такой структурой (возможно не очень хороший пример, сорри)...
users
user_id
username
messages_new - кол-во новых приватных сообщений у пользователя
messages_incoming_total
messages_outgoing_total
messages
message_id
owner_id
recipient_id
body
В мемкэше я храню значение messages_new, messages_incoming_total, messages_outgoing_total
Когда пользователь A создаёт приватное сообщение пользователю B, то я должен обновить messages_new, messages_incoming_total, messages_outgoing_total у пользователя B и часть этих хэшей у пользователя A. (Я понимаю, что не очень разумно хранить такие значения в отдельных хэшах, но это только пример)
Таким образом, при создании нового приватного сообщения я должен запустить целую цепочку ф-ий, которые произведут необходимые изменения в хэшах мемкэша (да, конечно - тэгирование помогает определенным образом, но это в структурном плане, а не в реализации). Согласитесь, что не очень удобно пихать вызов этих ф-ий прямо в ф-ию добавления приватного сообщения в БД.
Как быть в таком случае?
Возможно стоит вынести все цепочки в отдельный класс (а-ля handler'ы)?
Если да, то как передавать экземпляр такого handler'а в DataMapper (который ответственен за работу с БД)?
Ёлки палки, сплошные вопросы... извиняюсь.
Спасибо!
)