Banco de dados com relação 1:N
Olá usuários do fórum imasters!
Estou atualmente estudando a manipulação de dados em um banco de dados, em específico o MySQL. Estou usando recursos nativos, ou como se diz, fazendo na mão. Isso quer dizer que não estou usando ferramentas, frameworks, etc... para trabalhar com os bancos, tabelas e dados. Quero entender de perto como funciona na raiz, para depois fazer uso de ferramentas que aceleram a produção. No momento estou com bastante dúvidas sobre a relação de 1:N (um para muitos) já estudei vários artigos na internet mas me parecem muito confusos... Sei que é meio estúpido pedir código pronto aqui, más será que alguém poderia criar um exemplo para mim bem claro? A situação é a seguinte:
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(32) NOT NULL
);
CREATE TABLE veiculos (
id INT AUTO_INCREMENT PRIMARY KEY,
marca VARCHAR(32) NOT NULL,
kmrodados DECIMAL(13, 1) NOT NULL DEFAULT 0,
dono INT NULL
);
INSERT INTO usuarios (id, nome) VALUES
(1, 'Brendon'),
(2, 'João'),
(3, 'Maria');
INSERT INTO veiculos (id, marca, kmrodados, dono) VALUES
(1, 'FIAT', 35000.4, 1),
(2, 'FORD', 25432.6, 1),
(3, 'CHEVROLET', 2500.1, 2);
Nesse cenário, como ficaria uma query SELECT para conseguir um resultado semelhante a esse?
{
id: 1,
nome: 'Brendon',
veiculos: [
{ id: 1, marca: 'FIAT', kmrodados: 35000.4 },
{ id: 2, marca: 'FORD', kmrodados: 25432.6 }
]
}, {
id: 2,
nome: 'João',
veiculos: [
{ id: 3, marca: 'CHEVROLET', kmrodados: 2500.1 }
]
}, {
id: 3,
nome: 'Maria',
veiculos: []
}
Desde já agradeço a todos interessados em ajudar!
Discussão (1)
Carregando comentários...