quinta-feira, 24 de fevereiro de 2011

Fichas de membros em MySQL

Já foi falado sobre Banco de Dados MySQL e Campos Interessantes em um banco MySQL. Agora será mostrado com criar uma ficha genérica para cadastro de membros. No caso em particular como já foi mencionado em postagens anteriores é interessante iniciar a ficha com um ID, no caso específico, um user_id como "bigint", "auto increment". Assim, pode se indexar tudo com esse ID e usar em comandos de REPLACE, para atualizar qualquer ficha do banco de dados.

Outros campos óbvios, para acesso a um site restrito, são os de login e senha. Além destes, poderá ter o nome completo (full_name), a data do aniversário do usuário, e seu respectivo nível (user_level).

Dependendo da situação poderá ter campos para datas importantes, tais como, criação da conta, expiração da conta e último login. Se o site for multilíngue, poderá ser necessário um campo para a língua preferida do usuário.

Poderá ter campo para status do usuário, ou atividade do usuário, conforme o caso. Pode ser útil ter campos para RG, expedidor, data de expedição, CPF, filiação, tipo sanguíneo, naturalidade, nacionalidade, título de eleitor, etc. E por fim poderá ser acrescentado um campo para comentários sobre o usuário.

Existem outros campos que são importantes, mas talvez não para a ficha do usuário. Por exemplo, é importante ter o email do usuário. Mas se colocar uma tabela adicional com os seguintes campos: email_ID, user_ID, user_email, email_status, então cada usuário poderá ter inúmeros emails cadastrados no site. O user_ID é o ID do usuário na tabela de membros. O administrador poderá saber pelo status se o email foi confirmado (clique no link no email, caso receba o email) ou não. Poderá até acrescentar um campo para indicar o email primário, ou a ordem de preferência dos emails, conforme o caso.

O número telefônico também é bastante interessante o administrador poder lançar mão, mas segue o mesmo raciocínio da tabela de email, uma tabela em separado, só para fones, contendo: fone_ID, user_ID, fone, fone_tipo (cel, fixo, etc.). Assim poderão ser cadastrados quantos fones quiser para cada usuário.

O endereço segue a mesma lógica. Inclui-se o endereço_ID, o user_ID, endereço, e o tipo (residencial, comercial, caixa postal, contato, etc.). No caso o endereço pode ser dividido em vários campos: end_1, end_2, numero, CEP, cidade, UF, país, obs., status, etc. Então cada cliente pode ter vários endereços cadastrados.

Para incluir outras informações, pode ser interessante criar uma tabela para cada coisa. Assim os usuários não ficam limitados a ter apenas um de cada coisa.

Caso seja previsto que haverá muita mudança nos dados em uma determinada tabela, poderá ser acrescentado um campo de "em uso". Assim, para deletar uma ficha, basta zerar o campo de "em uso". Na próxima vez que for escrever um novo dado, procura-se pela ficha com o campo zerado. Assim não ficam "buracos" no banco de dados, e não se esgotam os IDs tão rapidamente.

Nenhum comentário:

Postar um comentário