O que é melhor usar, meta do usuário, taxonomias personalizadas ou nova estrutura de database?

Estou procurando conselhos. Estarei trabalhando no sistema de seguimento do usuário (como o twitter) para o meu site. Eu espero que ele tenha um grande número de usuários usando este sistema.

Então, eu gostaria de saber o que é melhor usar para armazenar todos os dados para este sistema. Devo usar o usuário meta, taxonomias personalizadas ou devo trabalhar diretamente com o database?

Eu estava pensando em criar algum meta de usuário, então cada usuário tem meta para seguidores e um meta para seguir, cada um seria preenchido com ids de usuários. Existe uma maneira melhor do ponto de vista da escalabilidade?

Obrigado!

Solutions Collecting From Web of "O que é melhor usar, meta do usuário, taxonomias personalizadas ou nova estrutura de database?"

No caso em que você deseja armazenar cada peça de dados como uma input única (linha) no database, uma tabela personalizada, como você já fez, é uma solução perfeitamente perfeita.

Por outro lado…

Você poderia usar a tabela usermeta para fazer exatamente a mesma coisa, armazenando várias meta-chaves com o mesmo nome que inputs únicas,

As inputs na tabela usermeta pareceriam as seguintes:

umeta_id user_id meta_key meta_value 1 1 follower user_1 2 1 follower user_2 3 1 follower user_3 4 1 randomkey abcdef 5 1 follower user_4 

Como você pode ver no exemplo acima, a quarta input na tabela usermeta é para um pedaço de metadados completamente não relacionados, de modo que é o que você vai lidar com todos os tipos de dados misturados na única tabela. Horas extras, se esta tabela contém muitas informações de meta extra, além de seus dados subsequentes, isso pode afetar o desempenho de suas consultas.

Pessoalmente, eu criaria uma tabela personalizada e só armazenaria user_id e follower_id (possivelmente o follower_username também).

 primary_id user_id follower_id follower_username 1 1 2 name2 2 1 2 name2 3 2 5 name5 4 1 8 name8 5 1 3 name3 

Armazenar o nome de usuário junto com o ID é opcional, mas útil.

Então, eu também armazenaria um valor serializado de todas as pessoas que seguissem um usuário contra o usuário individual na tabela usermeta que você pode fazer periodicamente via wp_cron. Se você precisa mostrar um determinado usuário que os segue, você pode recuperar uma meta_key usermeta individual, desmarcar os dados e apresentá-lo de acordo.

Se você também armazena o nome de usuário do seguidor, os dados serializados para um usuário também conterão o nome de usuário, o que evitará a necessidade de executar uma pesquisa na ID retornada se tudo o que você precisa mostrar é um nome de usuário e possivelmente um link para o usuário.

O ID é retornado se você precisar executar qualquer recuperação e manipulação de dados adicionais que você possa fazer do nome de usuário sozinho, mas uma ID é sempre útil e para mim, é preferível.

Claro que tudo isso é altamente generalizado, porque isso depende realmente do seu caso de uso estendido quanto ao que você pode fazer.