Relacionamento entre tabelas

estou com a seguinte rotina para bolar o banco de dados: Tenho uma tabela Clientes que periodicamente poderá ser alterado o tipo de contrato, poderá ser realizados reajustes de valores, poderão acrescentar serviços e decrescentar serviços, poderão ter um numero de colaboradores (admitir e demitir).
Tenho as tabelas: Cliente, Tipo de Contrato, Reajustes de Preço, Serviços Contratados e Colaboradores.
Todas as alterações eu preciso manter um histórico. Estou com dificuldades e entender como farei o banco de dados desse negocios pois cada cliente poderá ter muitos tipos de contratos, muitos reajustes, muitos serviços contratados e muitos colaboradores

Já li na wikipedia sobre relacionamentos MER e DER e não consegui até o momento enchergar minha aplicação rodando dessa forma no banco de dados, se alguém poder me ajudar, fico muito grato.

TSANCHES

Não sei se eh a melhor forma, mas normalmente eu crio uma tabela de log coms os campos(exemplos):
tabela
evento
valores

+ou- assim … e faço trigger no banco pra ficar mais rapido … qq alteração, inclusao, exclusao em qq tabela, da um insert nessa tabela de log … com isso vc tem o historico completo … desde a inserção, alteração e exclusão … n sei se era essa sua duvida, nem se essa eh a melhor forma … mas eh so uma coisa quando eu faço na mão.

Pra cada tabela poderia ter uma copia dela concatenada com “_historico” e qq alteracao no registro da tabela pai … replicaca nessa _historico com uma chave incremental a mais … sei la …
depende de como vc quer … deixa o pessoal dar a sugestão de como fazem tbm.

Baixe o BRMODELO.

Crie seu modelo CONCEITUAL, analise-o depois transforme no modelo LÓGICO, depois FISICO, daís vc terá uma compreensão melhor de seu sistema.

Encontrei a solução para este problema!

Para cada tabela criei uma outra com a chave primaria de cada uma para criar um relacionamento de muitos para muitos.
Dessa forma ele estará fazendo a ponte entre as tabelas, podendo muitos terem muitos.

Valeu!
TSANCHES