Usuário com melhor resposta
Preciso de um help em tabelas

Pergunta
-
Tenho um problema no relacionamento de uma tabela e gostaria de uma ajuda para resolver o problema abaixo.
Qual a melhor solução para a tabela abaixo, para fazer com que o CNPJ seja chave primária?
empresa id_empresa cnpj razao_social nome_fantasia 1 40278681000179 TRANSOCEAN
DRILLER 2 40278681000179 TRANSOCEAN
TRANSOCEAN BRASIL LTDA -
3 40278681000179 TRANSOCEAN
FRONTIER 4 40278681000179 TRANSOCEAN
PEREGRINE I - Editado Adersonleite quarta-feira, 21 de setembro de 2011 01:20
Respostas
-
Aderson,
Para tornar o CNPJ sua PK, ele tem q ser único. Pela sua estrutura vc tem várias empresas com o mesmo CNPJ, não está fazendo muito sentido isso na prática.
Se cada "empresa" tem o mesmo CNPJ, não seria o caso de tê-las como filiais? Parece que há um problema em sua regra de negócio.
Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com- Sugerido como Resposta Eder Costa terça-feira, 27 de setembro de 2011 15:18
- Marcado como Resposta Eder Costa sexta-feira, 7 de outubro de 2011 14:18
-
Anderson,
Concordo com o Marco, creio que esteja ocorrendo algum problema em sua regra de negocio, com certeza tornar apenas o CNPJ PK sera impossivel, a não ser que como ja dito, voce crie uma estrutra de filial, na forma atual, uma possibilidade seria CNPJ + NOME_FANTASIA, porem, não vejo aonde isso faria tanto sentido, eu gosto e defendo um id unico de cada tabela sequencial nao nulo como chave primaria, saiba que em toda chave primaria possui um indice cluster, que ja possuem 100% dos seus dados, então vamos supor que sua tabela tenha 10GB, caso 1GB seja apenas os dados da chave primaria, seu indice tera +- 1GB, isso com o ID, teoricamente chaves compostas, ainda mais com String, irao aumentar muito seu indice, o que fara voce ter uma perda, descenecessaria de espaço.
Fabrizzio A. Caputo
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Sugerido como Resposta Eder Costa terça-feira, 27 de setembro de 2011 15:19
- Marcado como Resposta Eder Costa sexta-feira, 7 de outubro de 2011 14:18
Todas as Respostas
-
-
Aderson,
Para tornar o CNPJ sua PK, ele tem q ser único. Pela sua estrutura vc tem várias empresas com o mesmo CNPJ, não está fazendo muito sentido isso na prática.
Se cada "empresa" tem o mesmo CNPJ, não seria o caso de tê-las como filiais? Parece que há um problema em sua regra de negócio.
Marco Antônio Pinheiro / MCTS - MCC http://marcoantoniopinheiro.blogspot.com- Sugerido como Resposta Eder Costa terça-feira, 27 de setembro de 2011 15:18
- Marcado como Resposta Eder Costa sexta-feira, 7 de outubro de 2011 14:18
-
Anderson,
Concordo com o Marco, creio que esteja ocorrendo algum problema em sua regra de negocio, com certeza tornar apenas o CNPJ PK sera impossivel, a não ser que como ja dito, voce crie uma estrutra de filial, na forma atual, uma possibilidade seria CNPJ + NOME_FANTASIA, porem, não vejo aonde isso faria tanto sentido, eu gosto e defendo um id unico de cada tabela sequencial nao nulo como chave primaria, saiba que em toda chave primaria possui um indice cluster, que ja possuem 100% dos seus dados, então vamos supor que sua tabela tenha 10GB, caso 1GB seja apenas os dados da chave primaria, seu indice tera +- 1GB, isso com o ID, teoricamente chaves compostas, ainda mais com String, irao aumentar muito seu indice, o que fara voce ter uma perda, descenecessaria de espaço.
Fabrizzio A. Caputo
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Sugerido como Resposta Eder Costa terça-feira, 27 de setembro de 2011 15:19
- Marcado como Resposta Eder Costa sexta-feira, 7 de outubro de 2011 14:18