1
resposta

MINHA RESOLUÇÃO

Bom dia a todos,

Tabela PRODUTO_EXERCICIO

CREATE TABLE PRODUTO_EXERCICIO 
(COD VARCHAR2(5) NOT NULL, 
DESCRICAO VARCHAR2(100) NULL, 
CATEGORIA VARCHAR2(100) NULL,
CONSTRAINT PK_COD_PRODUTO_EXERCICIO PRIMARY KEY (COD));

Tabela PRODUTO_VENDA_EXERCICIO

CREATE TABLE PRODUTO_VENDA_EXERCICIO
(ID NUMBER(5) GENERATED BY DEFAULT ON NULL AS IDENTITY,
COD_PRODUTO VARCHAR2(5) NOT NULL, 
DATA DATE NULL,
QUANTIDADE FLOAT(126) NULL,
PRECO FLOAT(126) NULL,
VALOR_TOTAL FLOAT(126) NULL,
PERCENTUAL_IMPOSTO FLOAT(126) NULL,
CONSTRAINT PK_ID_PRODUTO_VENDA_EXERCICIO PRIMARY KEY (ID),
CONSTRAINT FK_COD_PRODUTO_VENDA_EXERCICIO FOREIGN KEY (COD_PRODUTO) REFERENCES PRODUTO_EXERCICIO (COD));
1 resposta

Ei! Tudo bem, Adriano?

Parabéns pela dedicação! A sua resolução da atividade com os scripts de Oracle PL/SQL para a criação das tabelas no esquema de venda de suco de frutas ficou excelente e demonstra um ótimo entendimento de modelagem de dados.

O seu código, a estrutura está correta e muito bem organizada, o que observei:

  • A definição da primary key e da foreign key garante perfeitamente a integridade referencial entre as tabelas PRODUTO_EXERCICIO e PRODUTO_VENDA_EXERCICIO.

  • O uso do GENERATED BY DEFAULT ON NULL AS IDENTITY para o ID da tabela de vendas é uma excelente prática no Oracle para automatizar o incremento da chave.

Como uma dica de boas práticas para os seus próximos projetos em banco de dados, o tipo NUMBER costuma ser mais recomendado do que o FLOAT(126) para campos financeiros (como PRECO e VALOR_TOTAL), pois evita problemas de arredondamento com casas decimais. Mas, para o escopo desta atividade, a sua lógica faz total sentido e funciona perfeitamente!

Como foi a experiência de configurar essas restrições e relacionamentos no ambiente do Oracle?

Conteúdos relacionados
Aplicações de SQL em diversas áreas
SQL e NoSQL: trabalhando com bancos relacionais e não relacionais
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!