DataIncrement - além dos recursos do phpMyAdmin

Quando você usa algo como phpMyAdmin para trabalhar com dados no banco de dados, é sempre inconveniente que o campo vinculado exiba apenas um número de outra tabela, em vez dos dados específicos ocultos.

Por exemplo, o campo `country_id` contém números, não o nome do país. Temos que pular de mesa em mesa. Ou escreva um sql separado, o que geralmente é inconveniente se necessário para um rápido. Ou disque a consulta sql do telefone com as mãos. E se você precisar atualizar o país a partir do campo `country_id`, pule novamente de tabela em tabela. Em resumo - tudo isso é inconveniente.

Era mais fácil mostrar no formato:

Was

imagem

Tornou-se

imagem

Desafio


Faça uma configuração simples para os campos base exibirem dados relacionados de outras tabelas. E para que eles possam ser atualizados ali mesmo.

Solução


Essa tarefa me atormentou há muito tempo, pela natureza do meu negócio de desenvolvimento web. Havia várias abordagens para o projétil, como resultado, decidi pela solução mais simples que consegui encontrar. E o mais importante, que eu gostaria de me usar, e não resolver o problema abstrato dos usuários abstratos.

O resultado é um site DataIncrement.com

Como o DataIncrement funciona


  1. Conectamos nosso banco de dados ao DataIncrement usando host , nome , passe , dbname (a senha é armazenada nos cookies do navegador ou na sessão, ou seja, não é armazenada no site, se houver). Você deve ter um usuário capaz de se conectar a partir de qualquer host.
  2. O registro de todas as ações ocorre através da confirmação por correio. Talvez essa seja uma decisão controversa, mas até agora. Portanto, vamos ao correio e clicamos no link da carta. Assim, confirmamos a conexão.
  3. Depois disso, você pode acessar a lista de bancos de dados conectados, na página principal dataincrement.com
  4. Em seguida, clicamos no banco de dados conectado - esta será uma página com uma lista de todas as tabelas disponíveis.
  5. Em seguida, você precisa ir para a guia "Links" (o segundo link do nome da base "Base de exemplo" nas figuras "Foi o início"), onde você precisa configurar a conexão entre as tabelas para exibir os dados relacionados. Escrevendo texto não manhoso, por exemplo:

@link city country_id = country.country_id name region_id = region.region_id name 

Onde:

  • na primeira linha: @link é a designação da seção e city é o nome da tabela
  • mais necessariamente a partir de uma nova linha e sempre recuado para a esquerda
  • a descrição dos campos da tabela da cidade começa para a qual a exibição será configurada, ou seja,
    country_id = country.country_id é o campo `city`.`country_id` = ` country`.`country_id`
  • mais necessariamente a partir de uma nova linha e um recuo mais profundo
  • nome do campo para exibição adicional, ou seja, `country`.

Assim, obtemos a exibição da tabela na figura "Now", onde, além do valor real do campo, o valor do campo `country`. Nome é exibido por ponto e vírgula. Da mesma forma, a configuração foi feita para outro campo `region_id` , que é conectado como visto na configuração com o campo` region```regreg_id` .

imagem

Edição


A edição dos dados é feita clicando duas vezes em uma célula da tabela. Então, na parte inferior da página, aparece especial. painel onde você pode alterar o valor e enviar dados para a alteração.

Além de editar campos simples, no futuro planejo pesquisar campos relacionados. Por exemplo, para alterar o país, você pode digitar uma parte do nome e o próprio ID desejado foi oferecido para preenchimento. Na verdade, esse é um recurso padrão de dicas ao digitar uma consulta de pesquisa.

Uma sintaxe semelhante será usada para configurar as consultas de pesquisa, como nas seções @link , apenas com a @search

 @search city country_id = country.country_id 10 name $* 

onde a diferença é essa:

  1. a restrição de linhas retornadas é indicada, através do espaço - este é o número 10
    country_id = country.country_id 10
  2. Além disso, os campos a serem exibidos são indicados, mas após um espaço, um padrão de pesquisa adicional é indicado, em que dólar $ é o valor inserido e um asterisco * - significa qualquer caractere.
    Agora, tenho $ * indicado para o campo `country` .name`, ou seja, uma pesquisa por nome funcionará pelas letras iniciais das palavras no campo especificado.
    Um modelo pode ter quatro opções: $ , * $ , $ * , * $ *

Conclusão


No momento, o site é um protótipo bastante funcional e pode ser mostrado sem vergonha à luz. O que realmente deu origem a esta nota.

Existem muitas idéias e planos, mas enquanto este projeto está sendo um hobby, as críticas são aceitas como alimento para o pensamento. Pelo menos para parar de fazer essas bobagens e começar a fazer outras bobagens.

A nota é escrita como uma tentativa de não entupir a página principal do DI com todos os tipos de “páginas de entrada” com uma descrição, não está claro o que, mas para que você possa fornecer um link para a descrição e o princípio de operação. Além disso, imediatamente com críticas independentes, da série - "eles disseram isso".

Source: https://habr.com/ru/post/pt425939/


All Articles