Ir para conteúdo
Fórum Script Brasil
  • 0

[Dúvida] Gerenciar Registros de "Grupos"


flamer

Pergunta

Ainda estou começando a desenvolver ferramentas com banco de dados, e então me surgiu um problema...

Tenho um pequeno projeto que seria um site com registro de usuários etc... e um sistema de grupos com esses usuários. Esse sistema de grupos poderia ser comparado a comunidades do Orkut, ou algo parecido, onde um usuário poderia participar de quantos grupos quiser, e também qualquer usuário pode criar um desses grupos.

Porém o meu problema é que não consigo ver uma boa lógica para guardar os usuários de cada grupo no MySql. A única solução que me veio é de criar uma tabela para cada grupo, assim poderia acessar elas através do ID do grupo, e saber seus membros. Entretanto queria saber se criar tantas tabelas para cada novo grupo é viável, ou se gera uma perda de desempenho no MySQL.

Toda ajuda é bem vinda.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

A solução mais simples que consigo enxergar, seria, criar 3 tabelas:

  • grupo (armazena todos os grupos)
  • usuario (armazena todos os usuários)
  • grupo_usuario (armazena os usuários que pertencem aos grupos)

Segue abaixo o script para criar os tabelas. Presumo que esta utilizando MySQL.

CREATE TABLE grupo (
  id INT NOT NULL AUTO_INCREMENT,
  nome VARCHAR NULL,
  PRIMARY KEY(id)
)
TYPE=InnoDB;

CREATE TABLE grupo_usuario (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  usuario_id INTEGER UNSIGNED NOT NULL,
  grupo_id INT NOT NULL,
  PRIMARY KEY(id),
  INDEX grupo_usuario_FKIndex1(grupo_id),
  INDEX grupo_usuario_FKIndex2(usuario_id)
)
TYPE=InnoDB;

CREATE TABLE usuario (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR NULL,
  PRIMARY KEY(id)
)
TYPE=InnoDB;

Link para o comentário
Compartilhar em outros sites

  • 0

Então é preferível que exista uma tabela com valores de inúmeros grupos, que muitas tabelas com valores de um único grupo?

Falo em relação ao desempenho das consultas, e pensando em um bd com vários registros no futuro.

Obrigado pela ajuda.

PS: Só notei agora que existe uma seção para banco de dados.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...