Este assunto é um tanto chato de assimilar, mas é a base do conhecimento para uma correta implementação sem dores de cabeça no desenvolvimento. Eu sempre digo que cada minuto gasto no planejamento (estudo dos relacionamentos) podem reverter-se em horas poupadas mais tarde.
Atente apenas para o relacionamento N->N, este na teoria é simples, porém, na prática necessita de uma terceira tabela. Por exemplo, num controle de estoque você necessita controlar o armazenamento de produtos por depósitos. Você tem 1 tabela de produtos (PRODUTO, DESCRICAO, MEDIDA, VALOR, etc) e outra dos depósitos (DEPOSITO, DESCRICAO, ENDERECO, etc). Onde cada produto pode ser armazenado em vários depósitos e, em contra partida, cada depósito armazena vários produtos. Este é um tÃpico relacionamento N->N que resolve-se adicionando uma terceira tabela: "ProdutosDeposito" com os campos (PRODUTO, DEPOSITO, QUANTIDADE).