Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #106769
    Avatar de Felipe da RosaFelipe da Rosa
    Participante

      Ola pessoal.

      Estou usando uma abordagem com uso de chave artificial (surrogate key) no meu sistema.

      Tenho o cenário:

      Tabela escola: id e nome
      Tabela curso: id e nome

      Gostaria de criar uma outra tabela para vincular quais cursos fazem parte da escola.
      Eu poderia usar uma chave primaria composta com id da escola e id do curso.

      Mas TB posso criar um id pra ser a PK da tabela e criar os campos id da escola e do curso fora da PK.

      Qual seria a melhor opção? Sendo q estou evitando usar chaves compostas.

      #106770
      Avatar de Fábio PradoFábio Prado
      Participante

        Felipe,

        Há muitas coisas a serem analisadas p/ decidir entre chave natural ou artificial/substituta. A maior parte dos desenvolvedores preferem a chave artificial para otimizar joins e criar uma padronização nas PKs. Eu prefiro não ser radical e analisar todas as variantes para decidir entre um e outro.

        Para este caso, me parece q nova tabela é de relacionamento N para N, então eu acho q é melhor criar uma PK composta natural, pois vc irá sempre usar as colunas da PK p/ fazer join. Com a PK natural evita-se criar uma coluna a mais e vc terá menos dados na tabela!

        []s

        #106772
        Avatar de Felipe da RosaFelipe da Rosa
        Participante

          Certo, partindo do pressuposto que eu tenho uma chave natural, depois se eu quiser substituir um curso por outro. Vou precisar alterar os dados da PK. E isso não é uma boa pratica certo?

          Outra coisa, no caso de usar a chave substituta para uma tabela matriculas, dependendo do volume de dados ela não pode um dia se acabar? Tipo estourar o tamanho do id no banco?

          #106773
          Avatar de Fábio PradoFábio Prado
          Participante

            Se for necessário substituir pq isso seria uma prática ruim?

            Acabar valores na chave substituta? Depende. Como vc irá criar ela?

            #106775
            Avatar de Felipe da RosaFelipe da Rosa
            Participante

              Na empresa onde trabalho é meio que um “consenso”, de que não é uma boa pratica alterar valores da chave primária, o que você acha disso?

              Sobre acabar os valores da chave, vamos supor que eu tenho um banco unico para todos
              os meus clientes. e os clientes vão cadastrando suas matriculas.

              Esta tabela de matriculas teria um campo ID NUMBER(38,0) (??? não sei se isto esta correto). Não poderia chegar um momento que o campo iria estourar e o id nao ser mais incrementado?

              #106783
              Avatar de rmanrman
              Participante

                @Felipe da Rosa

                Creio que você pode descartar essa preocupação de atingir 38 digitos de matricula, provavelmente o sistema vai entrar em desuso antes disso. :woohoo:

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