Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou montando um sistema de pedidos de comida, porém surgiu um problema para pizzarias, teria que ter a opção de meia pizzas, mas não sei como fazer a lógica para funcionar sem mudar muita coisa do que já etá feito:
--
-- Estrutura da Tabela Restaurante Pratos
--
CREATE TABLE restaurante_pratos(
id_restaurante_prato int(11) NOT NULL auto_increment,
id_restaurante int(11) NOT NULL,
id_restaurante_prato_categoria int(11) NOT NULL default '0',
titulo varchar(255) NOT NULL,
descricao text NOT NULL,
preco double(10, 2) NOT NULL DEFAULT '00.00',
data date NOT NULL,
data_mod date NOT NULL,
foto varchar(255) NOT NULL,
publicado char(1) default 'N',
click int(11) NOT NULL,
PRIMARY KEY(id_restaurante_prato),
INDEX i2 (id_restaurante, id_restaurante_prato_categoria),
FOREIGN KEY (id_restaurante) REFERENCES restaurantes(id_restaurante) ON DELETE CASCADE,
FOREIGN KEY (id_restaurante_prato_categoria) REFERENCES restaurante_prato_categorias(id_restaurante_prato_categoria) ON DELETE CASCADE
) ENGINE = InnoDB;
-- --------------------------------------------------------
Está funcionando tudo corretamente, e os pratos não são apenas pizzas, porém quando for ter essa opção de meia a meia não sei como montar!
Partindo do princípio que metade da pizza é tipo 2 pedaços de pizza, teria que criar uma entidade para Pedaços e ligar ao restaurante_pratos. Mas como serve para qualquer comida, então o nome melhor seria Porções?
Então seria algo assim a tabela?
id_porcao -- 1
id_restaurante_prato -- 1
nome_porcao -- Meia pizza chocolate
quantidade_porcao_no_prato -- 0.5
id_porcao -- 2
id_restaurante_prato -- 1
nome_porcao -- Meia pizza banana
quantidade_porcao_no_prato -- 0.5
Daí a soma das quantidades porção teria que dar 1 (prato cheio). Também resolveria para pizzas de 4/8/16/32 sabores. Além de servir para outras comidas talvez.
Acima é uma das maneiras de resolver, e talvez não se encaixe, mas espero ter ajudado.
Lembrando que isso é mais uma dúvida de SQL do que de PHP. Você postou no fórum errado.