Pergunta

Aqui estão as estruturas das minhas duas mesas (chaves primárias em chaves arrojadas e estrangeiras em texto itálico)

service_agreements ( id , client_id, quantidade, data_begin, duração, * services_id_1 *, * services_id_2 *, * services_id_3 *, * services_id_4 *) Serviços ( id , data_provided, descrição, Staff_Person)

A ideia por trás das tabelas é que, com base em um acordo, a empresa fornece serviço até quatro vezes. Assim, como visto, os quatro campos da tabela Service_agreements (Services_id_1, ...) possuem quatro relacionamentos separados de um para um com tabelas de serviços (campo de ID). Parece-me um pouco incomum, porque geralmente vejo apenas um relacionamento entre duas mesas. So.Eu sei se isso é incomum ou é ok, se é incomum, qual é a melhor solução (sem fundir os campos de serviços para o service_agreements. Porque as tabelas de serviços também têm alguns registros no serviço fornecido sem um acordo.) .

Foi útil?

Solução

A estrutura pode ser ainda melhor:

.

service_agreements ( id , client_id, quantidade, data_begin, duração);

Serviços ( id , data_provided, descrição, staff_person);

service_agreements_services ( id , digite enum (service1, service2 etc), service_agreement_id , service_id );

nova tabela, service_agreements_services Adicione muitos a um relacionamento entre service_agreement e serviços;

vantagens :
1) Para cada novo serviço que você fornecerá, haverá novas inserções (geralmente menos sobrecarga do que a atualização) 2) Você pode até fornecer maiores nenhum serviço :)
3) Relacionamentos de tabela ficam mais fáceis.

obrigado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top