Não tenho nenhum problema em usar os mesmos nomes (ou muito semelhantes) na URL e no banco de dados - claro, você pode estar "expondo" detalhes de implementação, mas se estiver escolhendo nomes radicalmente diferentes na URL e no banco de dados, você provavelmente está escolhendo nomes ruins. Também sou fã de nomenclatura consistente — a comunicação com codificadores/testadores/clientes se torna muito mais difícil se todos chamarem tudo de algo ligeiramente diferente.
O que me incomoda é que você está deixando o usuário executar consultas arbitrárias em seu banco de dados.
http://.../index.php?table=users&user_id=1
, dizer? Ou http://.../index.php?table=users&password=password
(não que você deva armazenar senhas em texto simples)? Ou http://.../index.php?table=users&age=11
? Se o usuário conectado ao banco de dados tiver as mesmas permissões que o usuário sentado na frente do navegador da Web, pode fazer sentido. Geralmente, esse não será o caso, então você precisará de alguma camada que saiba o que o usuário é e não tem permissão para ver, e essa camada é muito mais fácil de escrever corretamente pela lista de permissões.
(Se você colocou lógica suficiente em procedimentos armazenados, pode funcionar, mas seus procedimentos armazenados codificarão nomes de coluna...)