To aprendendo a mexer com MySQL
e tentando fazer um sistema que registre reclamações de usuários sobre trens. Tem algum jeito de definir a coluna numReclamacoes
pelo número de registros feitos na outra tabela para aquele determinado trem?
SELECT COUNT(reclamacao) AS numReclamacoes
Isso vai trazer a qtd de linhas da coluna reclamacao
, e vai jogar na coluna numReclamacoes (vc nao precisa ter a coluna numReclamacoes)
Isso será em tempo real?
Se for o caso pode criar uma Trigger que alimenta a coluna toda vez que um registro for inserido ou removido. Contudo o COUNT é bem rápido, contudo sugiro que conte a quantidade de chaves primárias assim: SELECT COUNT(idReclamação) AS numReclamacoes FROM reclamacoes.
Se as tabela reclamacoes
está relacionada com a tabela trens
como está no desenho, você não precisa ter um número de reclamações na tabela de trens
, porque, existem maneiras de recuperar a quantidade de reclamações:
-
INNER JOIN
você faz uma lista e totaliza por exemplo por trens -
INNER JOIN
e trazer somente um trem ou até doisSELECT
também resolve. - ou …
Ou seja, não precisa desse campo é desnecessário e criar rotinas só para preencher isso é um controle desnecessário se o dado com um SELECT
você consegue totalizar, e ficar controlando isso é um erro, entenda o dado já existe não precisa cria-lo.
Se você está aprendendo tem algumas coisas que você não deveria utilizar:
Campos assim idReclamacao
deveria ser id_reclamacao
ou reclamacao_id
ou (nesse caso em especifico somente id
), ou seja nas relações coloque ao meu ver e entendimento nome da tabela e chave que relaciona: reclamacao_id
, trem_id
tudo também em minusculo, mantem um padrão.