Projecto Da Base De Dados / Problema Da Relação Documento

Estou a conceber e a desenvolver um sistema de gestão de documentos e deparei-me com uma questão que me está a causar grandes dores de cabeça. Mais do que tudo isto é apenas um cheque de sanidade mental...

basicamente o sistema armazena documentos, que podem ter uma relação com qualquer uma das seguintes entidades:

  • apenas uma empresa
  • uma empresa e múltiplos contactos
  • apenas um consumidor (pessoa única, não relacionada com a empresa)
  • múltiplo consumidores

os alinhamentos acima são usados para a pesquisa e indexação de documentos, bem como para armazenar negócios e detalhes de contato para uso repetido.

Digamos apenas "NewOrder".pdf é um contrato para comprar um carro novo, as seguintes combinações podem existir:

    NewOrder.pdf-aligned to business "Acme Pty Ltd" NewOrder.pdf-aligned to business "Acme Pty Ltd" and contact "John Doe" NewOrder.pdf-alinhado às empresas "Acme Pty Ltd" e contactos "desconhecido" e "Wayne Kerr" NewOrder.pdf-alinhado ao consumidor "Adam Smith" NewOrder.pdf-alinhado aos consumidores "Adam Smith" e "Sue Smith"

como exemplo, vamos tomar as relações (1), (3) e (4) de cima. A única maneira que me passou pela cabeça como conseguir a relação é alinhar os documentos como se segue....

enter image description here

o acima é muito sujo, pois estou criando tabelas com informação duplicada ou entradas em branco.

adoraria alguns comentários, comentários e sugestões mais importantes :thumbup:

TIA

Author: Zam, 2014-10-23

1 answers

Eu tentaria evitar dados duplicados, que acabariam em lágrimas. Talvez pensar em juntar-me às mesas? ie.
table.documentBusinessRelationship:    
    DocumentID
    BusinessID
Assim só se tem uma linha na base de dados para documentos que tenham relações com empresas.

E outra junta-te à tabela

table.documentContactRelationship
    DocumentID
    ContactID

Talvez o maior problema com este tipo de tabelas de junção é que ele pode tornar o questionamento um pouco mais complicado-mas pelo menos você mantém algum tipo de forma normal, sem duplicação de dados ou espaço vazio coluna.

 1
Author: Matt Coubrough, 2014-10-23 00:06:48