Eu armazeno vários detalhes do usuário em meu banco de dados MySQL. Originalmente, ele foi configurado em várias tabelas, o que significa que os dados são vinculados a UserIds e emitidos por meio de chamadas às vezes complicadas para exibir e manipular os dados conforme necessário. Configurando um novo sistema, quase faz sentido combinar todas essas tabelas em uma grande tabela de conteúdo relacionado.
- Isso vai ser uma ajuda ou um obstáculo?
- Considerações de velocidade na chamada, atualização ou pesquisa / manipulação?
Aqui está um exemplo de algumas das minhas estruturas de tabela:
- usuários - UserId, nome de usuário, e-mail, senha criptografada, data de registro, ip
- user_details - dados de cookies, nome, endereço, detalhes de contato, afiliação, dados demográficos
- user_activity - contribuições, última online, última visualização
- user_settings - configurações de exibição de perfil
- user_interests - variáveis segmentáveis de publicidade
- user_levels - direitos de acesso
- user_stats - hits, contagens
Edit: Eu votei todas as respostas até agora, todas elas têm elementos que essencialmente respondem à minha pergunta.
A maioria das tabelas tem uma relação de 1: 1 que foi o principal motivo para desnormalizá-las.
Haverá problemas se a tabela abranger mais de 100 colunas quando uma grande parte dessas células provavelmente permanecerá vazia?