Relacionamento 0...1 na prática
08/01/2016
0
- pedido
- endereço
- mesa
Os pedidos podem ser efetuados na pizzaria, ou seja, para uma mesa. Pode ser uma entrega(endereço) ou pode ser um pedido para viagem, onde ele não pertence a ninguém. No SQL da tabela pedido, no momento tenho o seguinte:
CREATE TABLE pedido ( cod_ped INT NOT NULL, cod_mesa INT, cod_end INT, val_ped DECIMAL(18,2), tipo_ped CHAR(1) NOT NULL, data_ins DATETIME, CONSTRAINT pk_cod_ped PRIMARY KEY(cod_ped), CONSTRAINT fk_cod_mesa FOREIGN KEY (cod_mesa) REFERENCES mesa(cod_mesa), CONSTRAINT fk_cod_end FOREIGN KEY (cod_end) REFERENCES endereco(cod_end), );
porém, como explicado, um mesmo pedido pode pertencer tanto a 1 mesa/endereço quanto a nenhum. Criando a chave estrangeira, estaria obrigando este pedido a ter um endereço e uma mesa. Como resolver este problema?
Leonardo Coelho
Posts
08/01/2016
Romário Beckman
cod_mesa INT NULL DEFAULT NULL, cod_end INT NULL DEFAULT NULL,
08/01/2016
Claudio Lopes
Talvez a sua solução seja de criar uma mesa e um endereço "coringa" onde todos os pedidos que sejam direcionados para entrega possam ser tabulados dessa forma.
Ou você terá que alterar sua modelagem para que possa contornar essa situação.
14/01/2016
Ricardo
Você criando esta "mesa" coringa irá te ajudar na hora de fazer o controle dos pedidos, pois você ter o controle de onde este pedido foi feito. O que acredito que sejam os pedidos feitos no caixa para viagem.
Isso te ajudará bastante na hora de gerar relatórios!
Clique aqui para fazer login e interagir na Comunidade :)