Pular para o conteúdo
  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 7 anos, 9 meses atrás por Avatar de viralataviralata.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #108108
    Avatar de BierhalsBierhals
    Participante

      Pessoal,

      Gostaria de compartilhar um problema e verificar se alguém tem uma solução interessante.

      Tenho a necessidade de associar características a um NCM. Um código NCM é formado da seguinte forma:

      http://classificacaodemercadorias.com.br/como-e-a-estrutura-e-composicao-da-nomenclatura-comum-do-mercosul-ncm.html

      SEÇÃO I DEFINIÇÃO
      Capítulo 01 Animais vivos
      Posição 0104 Animais vivos das espécies ovinas ou caprinas
      Subposição 0104.10 Ovinos
      Item 0104.10.1 Reprodutores de raça pura
      Subitem 0104.10.11 Prenhe ou com cria ao pé

      Acontece que a característica pode estar associado a qualquer nível do NCM. O fato é que quando eu fizer uma consulta a um código 0104.10.11, tenho que retornar as características que estão associadas diretamente ao código, e também as que estão associadas aos códigos de hierarquia superiores.

      Minha dúvida está em qual seria a melhor forma de armazenar este código, para que as consultas tenham a melhor performance?

      Armazenar cada pedaço do código em uma coluna separada, ou gravar em um único campo string?

      Existe alguma forma melhor de executar a consulta (performance) do que a abaixo?

      select * from ncmcaracteristica
      Where
      subitem = ‘0104.10.11’
      OR item = ‘0104.10.1’
      OR subposicao = ‘0104.10’
      OR posicao = ‘0104’
      OR capitulo = ’01’

      Antecipadamente agradeço.

      Grato,
      Luciano

      #108109
      Avatar de Paulo WerneckPaulo Werneck
      Participante

        @Bierhals

        Posso estar enganado mais teria que conhecer o modelo de dados um pouco melhor pra te dar uma melhor resposta.
        Mas eu creio que o operador “like” pode lhe ajudar.

        #108549
        Avatar de viralataviralata
        Participante

          [quote=”Bierhals” post=33499]Pessoal,

          Gostaria de compartilhar um problema e verificar se alguém tem uma solução interessante.

          Tenho a necessidade de associar características a um NCM. Um código NCM é formado da seguinte forma:

          http://classificacaodemercadorias.com.br/como-e-a-estrutura-e-composicao-da-nomenclatura-comum-do-mercosul-ncm.html

          SEÇÃO I DEFINIÇÃO
          Capítulo 01 Animais vivos
          Posição 0104 Animais vivos das espécies ovinas ou caprinas
          Subposição 0104.10 Ovinos
          Item 0104.10.1 Reprodutores de raça pura
          Subitem 0104.10.11 Prenhe ou com cria ao pé

          Acontece que a característica pode estar associado a qualquer nível do NCM. O fato é que quando eu fizer uma consulta a um código 0104.10.11, tenho que retornar as características que estão associadas diretamente ao código, e também as que estão associadas aos códigos de hierarquia superiores.

          Minha dúvida está em qual seria a melhor forma de armazenar este código, para que as consultas tenham a melhor performance?

          Armazenar cada pedaço do código em uma coluna separada, ou gravar em um único campo string?

          Existe alguma forma melhor de executar a consulta (performance) do que a abaixo?

          select * from ncmcaracteristica
          Where
          subitem = ‘0104.10.11’
          OR item = ‘0104.10.1’
          OR subposicao = ‘0104.10’
          OR posicao = ‘0104’
          OR capitulo = ’01’

          Antecipadamente agradeço.

          Grato,
          Luciano[/quote]

          Esta é uma boa pergunta, alguém sabe o melhor jeito de representar isto ?
          Já que ele pode tem que achar o maior nível possivel, isto é :

          Primeiro ele pesquisa pela String inteira ou seja subitm : ‘0104.10.11’

          Se não encontrar na tabela ele procura um nível abaixo, ou seja o item: ‘0104.10.1’

          caso não encontre busca pela subposicao = ‘0104.10’
          caso não encontre busca pela posicao = ‘0104’

          e por último , busca pelo capítulo , ou seja capitulo = ’01’

          [b][color=#0000bb]
          Qual a melhor maneira de representar isto em tabela, de modo que fique mais performatico[/color][/b] ? 🙁 🙁 🙁 🙁

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.
        plugins premium WordPress