Com um banco de dados MySQL bem estruturado, as relações entre as tabelas podem ser usadas para aproveitar ao máximo o potencial do PHPCG.
As relações entre as diferentes tabelas em um banco de dados MySQL devem refletir a estrutura lógica dos dados.
Portanto, é importante entender os diferentes tipos de relacionamentos.
O PHP CRUD Generator é capaz de analisar seu banco de dados e entender todos os tipos de relacionamentos, diretos e indiretos.
Depois que as relações forem estabelecidas corretamente, o senhor poderá exibir todos os dados de que precisa nas tabelas de dados do Bootstrap Admin Panel.
Aqui explicaremos os diferentes tipos de relacionamentos do MySQL.
Os diferentes tipos de relacionamentos em um banco de dados MySQL
Vamos considerar um banco de dados que contém produtos, clientes e seus pedidos.
Cada pedido pertence a um cliente e pode conter um ou mais produtos comprados. O mesmo produto pode ter sido comprado por vários clientes diferentes ou pelo mesmo cliente em vários pedidos.
Um relacionamento direto entre duas tabelas A e B é um relacionamento em que a tabela A está diretamente conectada à tabela B por uma chave estrangeira, obrigatória ou não. Esse tipo de relacionamento pode ser um para um ou um para muitos.
Em nosso exemplo, o campo orders.customers_id é um relacionamento direto com customers.id. O campo orders.customers_id é uma chave estrangeira.
Esse relacionamento permite associar cada pedido a um cliente.
Com o PHP CRUD Generator, ele nos permitirá exibir o nome do cliente de cada pedido na lista de pedidos.
Na guia Build List do CRUD Generator, o senhor verá a relação mostrada dessa forma:
Uma relação indireta é usada para vincular vários registros da tabela A a vários registros da tabela B. Para isso, usamos uma tabela intermediária, geralmente composta de duas chaves estrangeiras, cada uma permitindo identificar os registros das tabelas A e B. Esse relacionamento é um relacionamento de muitos para muitos.
Em nosso exemplo, a tabela products_orders é a tabela intermediária. Ela nos permite associar os produtos solicitados aos pedidos. As tabelas products_orders.products_id e products_orders.orders_id são chaves estrangeiras.
Com o PHP CRUD Generator, será possível exibir todos os produtos de cada pedido em uma tabela aninhada na lista de pedidos.
O Generator também permite que o senhor escolha os campos de produtos que deseja exibir e se os usuários do painel de administração têm permissão para adicionar/editar/excluir produtos diretamente da lista READ de pedidos.
Com o PHP CRUD Generator, ele nos permitirá exibir o nome do cliente de cada pedido na lista de pedidos.
Na guia Build List do CRUD Generator, o senhor verá a relação mostrada dessa forma:
Relacionamentos identificáveis e não identificáveis
Identificação de relacionamentos
Um relacionamento de identificação pode ser definido quando duas tabelas são unidas pelo mesmo identificador. Em outras palavras, os registros da segunda tabela são elementos inerentes ou características da primeira tabela.
Por exemplo: um livro é composto de capítulos. Cada capítulo faz parte de um livro identificado exclusivo. Nesse caso, a chave estrangeira chapters.books_id será listada como a segunda chave primária da tabela de capítulos.
Atualmente, esse tipo de relacionamento é muito raramente usado. Em vez disso, geralmente é usada uma relação indireta, que é mais generalista e menos restritiva.
Relacionamentos não identificáveis
Uma relação não identificadora é uma relação em que duas tabelas são unidas por uma associação ou atributos comuns ou por uma inclusão.
Por exemplo: cada pedido pertence a um cliente; cada pedido contém um ou mais produtos.