Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Inserção em duas tabelas

Bom dia,

Eu tenho um banco com 3 tabelas, uma com as categorias do produto, outra com o produto em si, e uma terceira que referencia qual categoria(s) um produto tem (podendo ter mais de uma). Assim, eu não possuo uma coluna para a categoria, e sim uma tabela de relacionamento. Na hora de incluir o produto eu tenho duas dúvidas: 1 - Como consigo fazer a inserção quando existe múltiplas caixas de seleções marcadas? 2 - Como fazer a inserção, no caso de múltiplos usuários no sistema? Eu vi que tem uma função em PHP que retorna o id gerado automaticamente na última consulta, mas como posso ter certeza se é realmente o ID que eu preciso (no caso de duas pessoas inserindo no banco ao mesmo tempo), não corre o risco de um dado se sobrepor a outro? Ou faria tudo dentro da mesma função?

1 resposta
solução!

Oi Otávio, tudo bom?

Nesse caso, gerenciar o banco com php puro e querys costuma dar bem mais trabalho mesmo. Por isso existem ferramentas que gerenciam o banco pra gente, como o Doctrine.

De qualquer forma, gerenciar essa base com a tabela de relacionamento não tem muito como fugir. É inserir nas duas tabelas, capturar os ids inseridos e inserir na tabela de relacionamento.

Como seu relacionamento é um para muitos (OneToMany), muitas vezes você nem vai precisar capturar os dois ids, pois um deles já estará no banco

Quanto a preocupação com o retorno, em php, todo script é executado em uma thread, cada thread tem sua conexão com o banco, e a função retorna sempre referente à uma conexão. Portanto, se dois usuarios mexerem na mesma tabela no mesmo milisegundo, eles estão em conexões diferentes o que não causaria problema =)

Abraço