Construir um contato Database - Precisa de um pouco de inspiração esquema
-
11-09-2019 - |
Pergunta
Eu tenho trabalhado em colocar para fora a estrutura de dados para uma aplicação que estou trabalhando. Uma das coisas que você precisa para identificador é armazenar informações de clientes / contato. Venho estudando a interface de alguns programas diferentes de informações de contato como o Address Book, contatos do Gmail, etc.
Eu basicamente fervida o baixo contato para uma "entidade" (pessoa, empresa, papel, etc).
- Cada Entidade pode ter vários Endereço , Telefone , E-Mail entradas.
- Cada um deles define um "relacionamento" (home / trabalho / assistente, etc)
- Entidade {1} - {relação} -> {0 .. *} Data ??strong>
- Um Entidade pode ter vários campos que são o armazenamento de dados de forma livre para outros dados "genéricos" (aniversários, conta AIM, etc)
- Entidade {1} - {fieldName} -> {0 .. *} Campo de dados
- Um Entidade pode vincular a outra Entidade , por exemplo, como um funcionário , cônjuge
- Entidade {0 .. } <- {relação} -> {0 .. } Entidade
Alguém já fez quaisquer implementações SQL de bancos de dados de contato semelhantes? Qualquer visão / sugestões / armadilhas a evitar que você poderia compartilhar com alguém tentando trabalhar em um projeto por si só aqui? Faz o que eu descrevi parece razoável ou demasiado complicada?
Uma pergunta, digamos que você tenha 4 pessoas, que todo o trabalho para a mesma empresa. Todos eles têm o mesmo "trabalho" número de telefone (talvez com uma extensão diferente) - Se o número ou endereço de mudanças "trabalho", eu gostaria de ser capaz de atualizar os contatos com bastante facilidade. Agora um monte de esta se resume a como você usaria o banco de dados. Eu estou pensando que isso se torna uma questão de ligar empregado do que as respectivas entidades da empresa, mas, em seguida, o número do endereço / telefone não está mais diretamente ligado ao empregado. Eu sou o tipo de debater tornando a relação Entidade / dados de muitos para muitos que lhe permite anexar o mesmo número de endereço / telefone para várias pessoas, e atualizá-lo em um lugar pode atualizá-lo em todos os lugares. Estou apenas pensando sobre isso? puxa o cabelo
Solução
É um pouco banal, mas você precisa saber os seus dados e o que você vai fazer com ele antes de começar tabelas pensando.
Eu sugiro olhar Object Role Modeling (ou este também) para definir o modelo na planície Inglês antes de realmente implementar quaisquer tabelas. Eu uso este VS plugin:. NORMA que também irá gerar um esquema para você também
Como alternativa, há um monte de modelos de dados aqui que podem inspirar você. Este é "Contact Management", mas existem outros, tais como os "clientes" seção
(Eu só queria postar uma imagem ..)
(fonte: databaseanswers.org )
Outras dicas
A Microsoft oferece uma série de bases de dados iniciais esquemas, inclusive os ativos Manutenção, Gerenciamento de contatos, clientes e pedidos, Gestão de Documentos, e-Commerce, Help Desk, Issue Tracking Software, Inventário de varejo de controle e Catálogos de Produtos. Consulte de arranque banco de dados esquemas .
Editar (Abril de 2016): É aparecem o webmaster Microsoft quebrou o link. Aqui está o Wayback Machine arquivo da página.
Um par de pontos que tendem a surgir na minha experiência ..
Considere relações recíprocas. Por exemplo, se alguém é definido como sendo um empregado de uma empresa, então, a empresa é, então, por definição, o empregador dessa pessoa.
Você está considerando endereços como entidades em si mesmos, ou como texto meramente livre associada a uma pessoa / local? Em algumas aplicações, o endereço (edifício físico etc) é 'real' e apenas uma pode existir na tabela. (Muitas vezes, utilizando o identificador de governo / postal para ele).