Pegue uma tabela que rastreie as compras de carne. Ele tem uma coluna de chave estrangeira "meat_id" para indicar que tipo de carne foi comprada.
Porém, os diferentes tipos de carne são únicos de alguma forma (como a classificação do USDA), então acho que deveriam ser armazenados em mesas diferentes.
No momento, não tenho representante suficiente para postar o ERD que desenhei, mas espero que esses DDLs sejam suficientes (simplifiquei-os para abreviar):
CREATE TABLE meat_purchase
(
id INTEGER
, purchase_details VARCHAR(4000) -- actually multiple columns, but details are irrelevant
, meat_id INTEGER
);
CREATE TABLE beef_meats
(
id INTEGER
, usda_beef_grade_id INTEGER
FOREIGN KEY REFERENCES usda_beef_grades
, desc VARCHAR(4000)
);
CREATE TABLE pork_meats
(
id INTEGER
, desc VARCHAR(4000)
);
CREATE TABLE poultry_meats
(
id INTEGER
, bird_id
FOREIGN KEY REFERENCES birds
, desc VARCHAR(4000)
);
-- and so on for the different types of meat...
Estou querendo saber como relacionar a tabela "meat_purchases" com as tabelas de carnes.
Apenas respostas agnósticas de SQL e RDBMS padrão, por favor.
Acho que você está procurando uma construção de subtipo/supertipo. Carne seria sua chave de migração e conteria um campo Tipo que indica a qual subtipo de carne está relacionado. Então:
PurchaseMeat = Meat = {MeatBeef, MeatPork, MeatPoultry}
Onde Meat é o tipo e a chave do subtipo.
Na notação dos pés de galinha, este é um círculo com uma linha sob ele.
Eu não criaria outras mesas para os diferentes tipos de carnes. Eu criaria tipos de carne e tipos de corte e então usaria FKs para amarrá-los todos juntos. Exemplo de banco de dados abaixo:
CAVALOS PARA CURSOS
Você está tentando unir uma solução de e-commerce com uma solução operacional totalmente diferente. O que você precisa fazer é pensar no comércio eletrônico como um contexto limitado separado, também conhecido como departamento, e, portanto, possui um banco de dados separado.
Departamento: VENDAS
Departamento: PRODUÇÃO DE CARNE
Neste caso, um pedido de vendas tem linhas de pedidos de vendas, que tem produtos de vendas, e o produto tem um campo de descrição que descreve o produto de carne
Se você precisar de detalhes da carne da PRODUÇÃO, eles serão enviados para o banco de dados de vendas como especificações do produto