none
Eu devo manter todos os dados de Usuario em uma Tabela ? RRS feed

  • Pergunta

  • Estou criando minha primeira aplicação é baseada inclusive no livro "Desenvolvendo em Camadas com C# .NET eu criei uma rotina de autenticação que acessa o banco de dados e compara o login e senha digitados com a tabela usuario no sql server 2008 porém tem outros dados que estou mantendo em uma outra tabela pois pensei em criptografar a leitura e escrita na tebela usuarios e deixar minha outra tabela livre porém percebi que minha aplicação tem ficado mais complexa eu terei inclusive que criar grupos de usuario (ex. supervisores, monitores, gerentes) o que devo fazer criar todos esses usuarios na minha tabela usuarios e todos os seus atributos em apenas uma tabela e filtrar pelo grupo ou devo simplesmente criar uma tabela para cada grupo e criar FK linkando cada usuario ao seu homonimo na tabela do grupo que ele pertence ?
    as principais variaveis que quero levar em consideração são facilidade principalmente de manutenção e depois segurança pois se der certo o programa será usado em um ambiente meio restrito por no maxi 15 usuarios. (tenho até duvidas se deveria criptografar a senha dos usuarios.
    segunda-feira, 8 de fevereiro de 2010 01:07

Respostas

  • Bom dia Ulisses,

    Utilizando apenas uma tabela você terá sem dúvida dados duplicados utilizando mais espaço em disco e tals, embora neste seu caso a quantidade de dados é muito pequena a recomendação (no meu entender) fazer como você disse usando duas tabelas. Pelo menos é como eu faria.

    Abraço,
    Ricardo

    http://ricardomura.spaces.live.com
    segunda-feira, 8 de fevereiro de 2010 10:20

Todas as Respostas

  • Bom dia Ulisses,

    Utilizando apenas uma tabela você terá sem dúvida dados duplicados utilizando mais espaço em disco e tals, embora neste seu caso a quantidade de dados é muito pequena a recomendação (no meu entender) fazer como você disse usando duas tabelas. Pelo menos é como eu faria.

    Abraço,
    Ricardo

    http://ricardomura.spaces.live.com
    segunda-feira, 8 de fevereiro de 2010 10:20
  • Ulisses,

    em modelagem de dados não existe resposta correta.

    A teoria das formas normais diz que você deve excluir todo tipo de duplicação de dados para evitar inconsistência de dados.

    Na prática, algumas pessoas defendem a "desnormalização" do banco em favor do desempenho. Essa melhora ocorreria pois você evitaria joins, que consomem recursos do servidor e aumenam a complexidade de seus planos de execução.

    Portanto, cabe a você decidir qual seria o melhor para sua aplicação, mas as melhores práticas indicam para utilizar no mínimo as 4 primeiras formas normais para manter a consistência de dados. Depois de normalitizado o banco, você deve sempre otimizar o seu códito SQL(ou T-SQL) de acordo com as funcionalidades oferecidas pelo SQL Server.

    Espero ter ajudado.
    Alex M. Bastos http://bastosalex.spaces.live.com Classifique as respostas para manter a qualidade do forum.
    segunda-feira, 8 de fevereiro de 2010 11:07