Banco de Dados - wikITA
(Nova página: == Banco de Dados da Turma 90 do ITA == É formado pelas tabelas: {| border=1 |----- |Tabela ||Descrição da Tabela |----- |DBUSER || Define os usuários do site. A princípio s...)
Edição de 18h08min de 19 de julho de 2008
Banco de Dados da Turma 90 do ITA
É formado pelas tabelas:
Tabela Descrição da Tabela
DBUSER Define os usuários do site. A princípio são os nojentos mais os iteanos de outras turmas mais professores do ITA de todas as épocas mais todos aqueles que se interessarem em se cadastrar no site, desde que aprovados por um administrador do sistema. Cada usuário é identificado internamente por um número (user_seq) que é a chave primária desta tabela. A cada usuário são associados diversos atributos: nome, apelido(s), data de nascimento, foto, data da última atualização etc.
WORKGROUP Define os grupos de usuários. Exemplos: Turma 90, Professor, Cônjuge, Visitante, etc. Cada grupo é identificado pela chave primária wrkg_seq.
USER_WRKG Associa as tabelas DBUSER e WORKGROUP atribuindo, a cada usuário, um ou mais grupos. Esta atribuição é feita armazenando pares user_seq e wrkg_seq. Relacionamentos semelhantes ocorrem nas demais tabelas abaixo descritas que, por concisão, não são descritos aqui.
USER_LOGIN Para cada usuário, define N logins de acesso ao site. Apenas um destes N logins é válido para acessar o site. Cada login define univocamente um usuário. A tabela permite que um mesmo usuário possa mudar seu login ao longo do tempo.
USER_LEVEL Define um nível de acesso para cada usuário. Este nível define as áreas do site que o usuário está autorizado a visitar. Exemplo: um usuário recém cadastrado tem um nível de acesso menor do que um usuário que tenha confirmado seu email e sido aprovado pelo administrador. O usuário recém cadastrado não tem o direito de acessar as páginas que mostram os telefones dos nojentos. O menor nível é do usuário visitante e o maior nível é do administrador do site.
USER_STATUS Define um "estado" para cada usuário: ativo, inativo, recém cadastrado, mocado, falecido etc.
USER_LOG Armazena o histórico de acessos para cada usuário. Grava o IP de onde o usuário acessou o site, a data do acesso etc.
EMAIL_TYPE Define tipos de email. Exemplo: casa, trabalho, obsoleto etc.
USER_EMAIL Para cada usuário, permite definir N emails, cada email de um tipo. Assim o usuário pode ter, por exemplo, 5 emails pessoais, 2 emails do trabalho e 53 emails obsoletos. É importante guardar emails obsoletos pois quando alguém nos disser que o email do José da Silva é silva@empresa.com podemos afirmar que "Não senhor! Este email é obsoleto!".
PHONE_TYPE Define tipos de telefone. Exemplo: fixo, celular, trabalho, fax etc.
USER_PHONE Para cada usuário, permite definir N telefones, cada telefone de um tipo. Assim o usuário pode ter, por exemplo, 3 telefones fixos, 5 celulares, 2 faxes etc. De modo análogo ao que acontece com os emails (ver acima) os números antigos (obsoletos) continuam armazenados no banco.
LANGUAGE Define uma lista de línguas. Exemplo: pt=português de portugal, pt-br= português do Brasil etc. Estas linguagens definem como determinadas áreas do site aparecem para o usuário.
COUNTRY Define uma lista de países. Pode armazenar o nome do país em várias linguas. Exemplo: Brasil em português do Brasil e Brazil em inglês.
STATE Para cada país da tabela COUNTRY permite definir N estados ou províncias. A cada estado há um nome e uma abreviatura.
CITY Para cada estado da tabela STATE permite definir N cidades.
STREET Para cada cidade da tabela CITY, contém uma lista de logradouros (ruas, avenidas, praças) com respectivo CEP.
ADDRESS_TYPE Define tipos de endereço: pessoal, trabalho, casa dos pais, obsoleto etc.
USER_ADDRESS Para cada usuário, permite definir N endereços, cada endereço de um tipo. Cada endereço contém logradouro, cidade, estado e país padronizados pelas tabelas STREET, CITY, STATE e COUNTRY. Isso reduz a possibilidade que um mesmo endereço seja grafado de várias formas (exemplo: "R Ruy Silva, 123" e "Rua Rui Silva, 123".
COMPANY Semelhante à tabela DBUSER porém armazena empresas ao invés de usuários. Cada empresa tem nome, sigla e outros atributos.
COMPANY_ADDRESS Para cada empresa, define N endereços.
USER_COMPANY Cada usuário é relacionado com N empresas. Datas e cargos associadas ao relacionamento permitem definir em quais empresas um usuário trabalha e/ou trabalhou.
CONTACT_TYPE Define outras formas de contato com o usuário: skype, MSN etc.
USER_CONTACT Para cada usuário e cada tipo de contato define N formas de contato. É possível que um usuário tenha, por exemplo, 3 logins no skype, 10 no MSN etc.
USER_USER Permite relacionar os usuários entre si. Exemplo: o usuário X é cônjuge do usuário Y e pai do usuário Z.