Хорошо, поэтому пользователь заходит в мое веб-приложение и получает очки и тому подобное за активность, что-то вроде (но не так сложно), как этот сайт.Они могут голосовать, комментировать, отправлять, избирать, голосовать за комментарии, писать описание и т. Д. И т. Д.
В настоящий момент я сохраняю действие пользователя в таблице с такой датой, как
Table user_actions
action_id - PK AI int
user_id - PK int
action_type - varchar(20)
date_of_action - datetime
Так, например, если пользователь приходит и оставляет комментарий или голосует за комментарий, то строки будут выглядеть примерно так
action_id = 4
user_id = 25
action_type = 'new_comment'
date_of_action = '2011-11-21 14:12:12';
action_id = 4
user_id = 25
action_type = 'user_comment_vote'
date_of_action = '2011-12-01 14:12:12';
Все хорошо, я слышу, как вы говорите, но не совсем, помните, чтоэти строки будут находиться в таблице user_actions
, которая отличается от тех, в которых хранятся комментарии и голоса пользователей.
Итак, как мне узнать, какой комментарий связан с какой строкой в user_actions
?
Ну, я мог бы просто связать уникальную comment_id
в таблице комментариев с новым столбцом, который называетсяtarget_primary_key
в таблице user_actions
?
Нет.Не может этого сделать, потому что в равной степени действие могло бы быть user_comment_vote
, у которого есть составной ключ (двойной ключ)?
Итак, мысль, с которой я остаюсь, состоит в том, нужно ли просто добавить первичные ключи встолбец и запятая их уменьшают и позволяют PHP разбирать это?Итак, взяв пример выше, строки ниже показывают, как я буду хранить целевые первичные ключи
new_comment
target_primary_keys - 12 // the unique comment_id from the comments table
user_comment_vote
target_primary_keys - 22,12 // the unique comment_id from the comments table
Таким образом, в основном пользователь выполняет действие, обновляется user_actions
и, соответственно, конкретный table
, но как связать эти два параметра, сохраняя при этом несколько ключей?
Кто-нибудь имел опыт хранения пользователяактивность раньше?
Любые мысли приветствуются, здесь нет неправильных ответов.